我正在使用Tab Layout,我想做两件事:
另外,文字大部分都在图标上而不是图标下面(我可以对它做些什么吗?)。
关于如何做到这一点的任何想法?
编辑:我正在以这种方式创建新标签:
spec = tabHost.newTabSpec("artists").setIndicator(
"Artists",
res.getDrawable(R.drawable.ic_tab_artists)
).setContent(intent);
tabHost.addTab(spec);
我想更改“艺术家”这个词的大小。
答案 0 :(得分:5)
您应该定义自己的视图。
tabHost.newTabSpec("tab1")
.setIndicator(prepareTabView(this, "title"))
.setContent(intent);
你可以在这里更改文字大小 tv.setTextSize(20)“
public static View prepareTabView(Context context, String text) {
View view = LayoutInflater.from(context).inflate(
R.layout.tab_indicator, null);
TextView tv = (TextView) view.findViewById(R.id.tabIndicatorTextView);
tv.setText(text);
return view;
}
tab_indicator.xml。你也可以在这里改变文字大小 android:textSize =“20dip”。可以在此处设置背景颜色。的机器人:背景= “@颜色/ back_color_selector_tab”强>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fakeNativeTabLayout" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:gravity="center"
android:orientation="vertical" android:background="@color/back_color_selector_tab">
<!-- You can even define an Icon here (dont forget to set a custom icon
in your code for each Tab): <ImageView android:id="@+id/fakeNativeTabImageView"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/icon" /> -->
<TextView android:id="@+id/tabIndicatorTextView"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Tab" android:ellipsize="marquee" />
</LinearLayout>
back_color_selector_tab.xml是一个xml,用于自动更改不同状态下的背景颜色。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/state_orange" />
<item android:state_selected="true" android:drawable="@drawable/background05" /> <!-- focused -->
<item android:drawable="@drawable/background04" /> <!-- default -->
</selector>
state_orange.xml
的示例<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/orange" />
</shape>
答案 1 :(得分:0)
对于选项A:
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
{
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#8A4117"));
}
tabHost.getTabWidget().setCurrentTab(1);
tabHost.getTabWidget().getChildAt(1).setBackgroundColor(Color.parseColor("#C35817"));