Android:选项卡上的文本和颜色,选项卡布局

发布于 2024-12-09 19:51:08 字数 408 浏览 0 评论 0原文

我正在使用选项卡布局,我想做两件事:

  1. 设置颜色,这样它就不会是灰色的,
  2. 减小文本大小,文本不适合。

另外,文本大部分位于图标上而不是图标下方(我可以对此做些什么吗?)。

关于如何做到这一点有什么想法吗?

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

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

我想更改“艺术家”一词的大小。

I'm using Tab Layout and I want to do two things:

  1. set the color so it won't be gray
  2. reduce the text size, the text doesn't fit.

also, the text is in most part on the icon instead of below it (can I do something about it ?).

Any ideas on how can I do this ?

edit: I'm creating a new tab in this manner:

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

I want to change the size of the word "artists".

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

墨小沫ゞ 2024-12-16 19:51:08

您应该定义自己的视图。

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"。可以在此处设置背景颜色 android:background="@color/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>

You should define your own view.

tabHost.newTabSpec("tab1")
                .setIndicator(prepareTabView(this, "title"))
                .setContent(intent);

and you can change the text size here 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. you can change the text size here also android:textSize="20dip". it is possible to set the background color here. android:background="@color/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 is an xml for automatic changes in background color in different states.

<?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>

a sample of 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>
依 靠 2024-12-16 19:51:08

对于选项 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"));

For Option 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"));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文