gpt4 book ai didi

android - 根据选择的选项卡更改选项卡颜色

转载 作者:行者123 更新时间:2023-11-30 02:38:59 25 4
gpt4 key购买 nike

我有一个带有扩展 TabActivity 的 MainActivity 的应用程序(我知道它已被弃用,但要更改整个应用程序还有很多工作要做)。

所以在我的应用程序中,我使用 tabhost 创建 3 个选项卡,如下所示:

TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost);
TabSpec firstTabSpec = tabHost.newTabSpec("tid1");
TabSpec secondTabSpec = tabHost.newTabSpec("tid2");
TabSpec thirdTabSpec = tabHost.newTabSpec("tid3");

firstTabSpec.setIndicator("tab1").setContent(
new Intent(this, tab1.class));
secondTabSpec.setIndicator("tab2").setContent(
new Intent(this, tab2.class));
thirdTabSpec.setIndicator("tab3").setContent(
new Intent(this, tab3.class));

/* Add tabSpec to the TabHost to display. */

tabHost.addTab(firstTabSpec);
tabHost.addTab(secondTabSpec);
tabHost.addTab(thirdTabSpec);


//Changing the tabs text color on the tabs
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
{
TextView tv = (TextView) tabHost.getTabWidget().getChildAt(i).findViewById(android.R.id.title);
tv.setTextColor(Color.parseColor("#ffffff"));
}

// remove divider
tabHost.getTabWidget().setDividerDrawable(null);

tabHost.getTabWidget().getChildAt(0).setBackgroundColor(Color.parseColor("#90a4ae"));
tabHost.getTabWidget().getChildAt(1).setBackgroundColor(Color.parseColor("#607d8b"));
tabHost.getTabWidget().getChildAt(2).setBackgroundColor(Color.parseColor("#607d8b"));

所以我的代码创建了 3 个选项卡,链接到 3 个不同的 Activity ,并设置了选项卡的颜色。第一个选项卡首先加载的颜色与其他两个选项卡不同。

我希望选项卡的颜色根据选择的选项卡而改变。因此,当我按下第二个选项卡时,我希望第一个获得#607d8b 颜色,第二个获得#90a4ae。第三个也一样。

试图实现 OnTabChangeListener 但无法使其工作。试图做到这一点:

    tabHost.getTabWidget().getChildAt(0).setBackgroundColor(Color.parseColor("#90a4ae"));
tabHost.getTabWidget().getChildAt(1).setBackgroundColor(Color.parseColor("#607d8b"));
tabHost.getTabWidget().getChildAt(2).setBackgroundColor(Color.parseColor("#607d8b"));

每个加载的选项卡 Activity 中的颜色都发生了变化,但我收到错误提示它无法解析 tabhost(它应该解析,因为它是在 MainActivity 中定义的。

最佳答案

tabHost.setOnTabChangedListener(new OnTabChangeListener() {

@Override
public void onTabChanged(String tabId) {
// TODO Auto-generated method stub
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#54C4C6")); // unselected
}

tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#114C5A")); // selected
}
});

关于android - 根据选择的选项卡更改选项卡颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26054792/

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