Android:标签上的文字和颜色,标签布局

Bel*_*lgi 1 android android-layout

我正在使用Tab Layout,我想做两件事:

  1. 设置颜色,使其不会变灰
  2. 减小文字大小,文字不合适.

此外,文字大部分是在图标上而不是在它下面(我可以对它做点什么吗?).

有关如何做到这一点的任何想法?

编辑:我正在以这种方式创建一个新选项卡:

spec = tabHost.newTabSpec("artists").setIndicator(
    "Artists",
    res.getDrawable(R.drawable.ic_tab_artists)
).setContent(intent);
tabHost.addTab(spec);
Run Code Online (Sandbox Code Playgroud)

我想改变"艺术家"这个词的大小.

Bob*_*obs 5

您应该定义自己的视图.

tabHost.newTabSpec("tab1")
                .setIndicator(prepareTabView(this, "title"))
                .setContent(intent);
Run Code Online (Sandbox Code Playgroud)

你可以在这里改变文字大小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;
    }
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)