Android:将选中的Tab的颜色设置为TableRow的背景颜色

3
我有一个TabLayout。其中我有一个带有动态添加行的TableLayout。 当选中/点击TableRow时,我想将其背景颜色设置为Tab的按下或点击颜色。
我不想设置任何静态颜色,而是想使用默认主题颜色。如何获取Tablayout的颜色信息?
如何处理选项卡的左侧和右侧?这是在将tab_background.xml设置为所有选项卡的背景资源之前和之后所获得的: Tab bg settings 在左侧,两个图像都没有任何设置,但是左右两侧的角落都很平滑。 在右侧,两个图像都有设置,可以看到选定选项卡的角落只是一个正方形,它们应该像没有任何设置的那样被圆角化或平滑。 看来我得使用tab_selected_bar_right和tab_selected_bar_left。 我已将它们复制到我的可绘制文件夹中,但不知道如何使用它们。请告诉我应该在@mudit提供的下面的xml中给予什么设置。
请指导我。非常感谢任何帮助。我很着急。
谢谢

你能发布你的XML布局文件吗? - Yugandhar Babu
2个回答

5
在您的Java文件中添加选项卡后,请添加以下代码:(我只添加了2个选项卡,如果您有更多选项卡,则可以添加此代码)
TabWidget tw = getTabWidget();

View tab1View = tw.getChildAt(0);
tab1View.setBackgroundResource(R.drawable.tab_background);

View tab2View = tw.getChildAt(1);
tab2View.setBackgroundResource(R.drawable.tab_background);

代码 tab_background.xml:

(将其放在 drawable 文件夹中)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_focused="false" android:state_selected="false"
        android:state_pressed="false"
        android:drawable="@drawable/tab_bg" />

    <item android:state_focused="false" android:state_selected="true"
        android:state_pressed="false" android:drawable="@drawable/tab_selected" />

    <item android:state_focused="true" android:state_selected="false"
        android:state_pressed="false"
        android:drawable="@drawable/tab_bg" />

    <item android:state_focused="true" android:state_selected="true"
        android:state_pressed="false" android:drawable="@drawable/tab_selected" />

    <item android:state_pressed="true"
        android:drawable="@drawable/tab_selected" />
</selector> 

你能帮我解释一下上面的文件吗?你说你有2个选项卡,所以第一个和第二个项目元素必须代表这2个选项卡 - 这只是我的猜测。第5个项目元素是什么?请帮个忙。 - Tvd
1
你需要放置两张名为“tab_bg”和“tab_selected”的图片,当选项卡处于“选中”状态时显示其中一张,当选项卡处于“未选中”状态时显示另一张。 - mudit
@mudit,我的问题是:当我们选择一个选项卡或点击一个按钮时,我们会看到一种橙色的颜色。我想获取那个点击颜色(即默认的橙色)。如何获取那个颜色? - Tvd
尝试使用以下代码:TabWidget tw = (TabWidget)findViewById(android.R.id.tabs); - mudit
是的,Mudit,我按照你提到的方法找到了TabWidget。背景颜色和设置也已更改。但是边角仍然很锐利,不够平滑。我上传了未进行任何设置和已进行设置的选项卡图像。如果您能帮忙解决这个问题,我会很高兴的。 - Tvd
显示剩余2条评论

0

我已经解决了这个问题。很抱歉之前没有提到它。对不起,我只是忘记了。 @Yugandhar,感谢您的关注。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接