如何更改 Android 中选项卡的背景颜色?

发布于 2024-12-23 00:31:10 字数 2451 浏览 1 评论 0原文

我正在使用选项卡。我想更改选项卡的背景颜色或主题。当我单击选项卡时,该选项卡以默认颜色显示为灰色,但我想以自定义颜色显示该选项卡。

这是我的代码:

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"

     >
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
               >

        >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="-30dp"
            android:background="#FF0000"

            />
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
             >

        </FrameLayout>
    </LinearLayout>

</TabHost>

类文件

public class AndroidtabActivity extends TabActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
//        View title = getWindow().findViewById(android.R.id.title);
//        View titleBar = (View) title.getParent();
//        titleBar.setBackgroundResource(R.drawable.top_bar2);


       Resources res = getResources();
        TabHost tabHost = getTabHost();
        //tabHost = (TabHost) findViewById(R.id.tabhost);
        tabHost.setup();
        //tabHost.setBackgroundResource(R.drawable.pink);


        TabHost.TabSpec spec; 
        //tabHost.getTabWidget().setDividerDrawable(R.drawable.top_bar);
        Intent in;
        in = new Intent().setClass(this, MainActivity.class);
        spec=tabHost.newTabSpec("calc").setIndicator("calculate").setContent(in);
        tabHost.addTab(spec);
        in = new Intent().setClass(this, TutorialZoomActivity1.class);
        spec=tabHost.newTabSpec("help").setIndicator("help").setContent(in);
        tabHost.addTab(spec);
        tabHost.setCurrentTab(2);
       // spec1.setIndicator("Tab 1",getResources().getDrawable(R.drawable.flash));




    }
}

请告诉我如何更改选项卡的背景颜色。

i have working with tabs. i want to change the background color or theme for tab. when i click on the tab appears in default color as grey but i want to display that tab in custom color.

here my code:

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"

     >
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
               >

        >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="-30dp"
            android:background="#FF0000"

            />
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
             >

        </FrameLayout>
    </LinearLayout>

</TabHost>

class file is

public class AndroidtabActivity extends TabActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
//        View title = getWindow().findViewById(android.R.id.title);
//        View titleBar = (View) title.getParent();
//        titleBar.setBackgroundResource(R.drawable.top_bar2);


       Resources res = getResources();
        TabHost tabHost = getTabHost();
        //tabHost = (TabHost) findViewById(R.id.tabhost);
        tabHost.setup();
        //tabHost.setBackgroundResource(R.drawable.pink);


        TabHost.TabSpec spec; 
        //tabHost.getTabWidget().setDividerDrawable(R.drawable.top_bar);
        Intent in;
        in = new Intent().setClass(this, MainActivity.class);
        spec=tabHost.newTabSpec("calc").setIndicator("calculate").setContent(in);
        tabHost.addTab(spec);
        in = new Intent().setClass(this, TutorialZoomActivity1.class);
        spec=tabHost.newTabSpec("help").setIndicator("help").setContent(in);
        tabHost.addTab(spec);
        tabHost.setCurrentTab(2);
       // spec1.setIndicator("Tab 1",getResources().getDrawable(R.drawable.flash));




    }
}

please tell me how can i change the background color for tabs.

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

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

发布评论

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

评论(2

梦亿 2024-12-30 00:31:10

也许您应该创建自定义选项卡。

  1. 假设..
  2. 在线性布局中创建另一个 custom_tab.xml (线性布局和文本视图)
    ,将 android:background 设置为可绘制对象中的另一个 xml 文件 (@drawable/tab_selector)
  3. 创建新的上面提到的drawable中的xml文件。前任。 tab_selector.xml。在此文件中,您可以设置状态(聚焦、按下、选择等)

    祝你好运

Maybe you should create your custom tab.

  1. Let say.. create another custom_tab.xml (linearlayout and textview)
  2. in the linearlayout, set android:background to another xml file in the drawable (@drawable/tab_selector)
  3. Create new xml file in the drawable just mention above. ex. tab_selector.xml. in this file, you can set state (focused, pressed, selected etc)

    good luck

海风掠过北极光 2024-12-30 00:31:10

您可以通过以下方式更改选项卡背景颜色

for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
        tabHost.getTabWidget().getChildAt(i).
                                   setBackgroundResource(R.drawable.hans_layout_nblue);
    }

You can change tab background color by

for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
        tabHost.getTabWidget().getChildAt(i).
                                   setBackgroundResource(R.drawable.hans_layout_nblue);
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文