gpt4 book ai didi

Android,FragmentTabHost - 如何去除蓝色?

转载 作者:行者123 更新时间:2023-11-29 01:50:40 27 4
gpt4 key购买 nike

我正在尝试删除 android.support.v4.app.Fragment TabHost 上选项卡下方的蓝线和蓝色背景(选择选项卡时)。有人这样做过吗?

发送

最佳答案

我认为您必须自定义选项卡。这是我项目中的代码,可能会给你一些建议。

在你的 fragment 类中

private TabHost.TabSpec createTab(String _tabText, boolean _canClose) {
TabFactory tf = new TabFactory(this);
tf.setOnTabClosedListener(this);
TabHost.TabSpec spec = mTabHost.newTabSpec(_tabText);
spec.setIndicator(tf.createTabView(_tabText, _canClose));
spec.setContent(tf);
return spec;
}

在你的 res/layout/your_xml 中

 //tab_pagers.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="@dimen/tab_width"
android:layout_height="fill_parent"
android:background="@drawable/selector_tab_pagers"
android:fadingEdge="none" >

<TextView
android:id="@+id/tv_tab_text"
style="@style/Text.Tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />

<ImageView
android:id="@+id/btn_close_tab"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@android:color/transparent"
android:paddingRight="5dp"
android:paddingTop="5dp"
android:src="@drawable/ic_close" />

</RelativeLayout>

在你的 TabClass 中

 //TabFactory
public final class TabFactory implements TabHost.TabContentFactory {

private static final int LAYOUT_TAB = R.layout.tab_pagers;
private final Context mContext;


public interface OnTabClosedListener {

void onTabClosed(String _tabText);
}


OnTabClosedListener mOnTabClosedListener;


public TabFactory(Context _context) {
super();
mContext = _context;
}


@Override
public View createTabContent(String tag) {
View v = new View(mContext);
v.setMinimumWidth(0);
v.setMinimumHeight(0);
return v;
}


public View createTabView(final String _tabText, boolean _canClose) {
View view = View.inflate(mContext, LAYOUT_TAB, null);
TextView tv = (TextView) view.findViewById(R.id.tv_tab_text);
view.findViewById(R.id.btn_close_tab).setVisibility(_canClose ? View.VISIBLE : View.INVISIBLE);
view.findViewById(R.id.btn_close_tab).setOnClickListener(new OnClickListener() {

@Override
public void onClick(View _v) {
if (mOnTabClosedListener != null) {
mOnTabClosedListener.onTabClosed(_tabText);
}
}
});
tv.setText(_tabText);
return view;
}


public void setOnTabClosedListener(OnTabClosedListener _onTabClosedListener) {
mOnTabClosedListener = _onTabClosedListener;
}
}

关于Android,FragmentTabHost - 如何去除蓝色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18292911/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com