【问题标题】:android: Set clicked color of Tab to background color of a TableRowandroid:将Tab的点击颜色设置为TableRow的背景颜色
【发布时间】:2025-12-04 11:55:02
【问题描述】:

我有一个 TabLayout。在那我有一个动态添加行的表格布局。 When a TableRow is selected/clicked I want to set its background color to the Pressing or Clicked color of Tab.

我不想设置任何静态颜色,但想使用默认主题颜色。如何获取 Tablayout 的颜色信息?

标签的左右两边如何处理?这就是我在将 tab_background.xml 设置为所有选项卡的背景资源之后得到的结果:

在左侧,两个图像都没有任何设置,但左右角是平滑的。 在右侧,两个图像都带有设置,看到所选选项卡的角只是一个正方形,它们应该像没有任何设置的那样被四舍五入或平滑。 看来我必须使用 tab_selected_bar_right 和 tab_selected_bar_left。我已将它们复制到我的可绘制对象中,但不知道如何使用它们。在@mudit 提供的下面的xml 中提供什么设置。

请指导我。非常感谢任何帮助。我很着急。

谢谢

【问题讨论】:

  • 你能发布你的 XML 布局文件吗?

标签: android tabs


【解决方案1】:

在您的 java 文件中添加选项卡后添加此代码:

(我只添加了两个标签,如果您有更多标签,您可以添加)

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 项元素必须代表这 2 个标签 - 这只是我的猜测。什么是第 5 项元素?请帮忙。
  • 您可以在类中添加“tabView”对象,其中“n”是标签视图中的标签数量。 Java 代码:查看选项卡View = tw.getChildAt();
  • 我用的是 1.6,它没有 tab_bg,tab_selected。所以我在 xml 的所有 5 个项目元素上都出错了。
  • 您需要放置 2 张名为“tab_bg”和“tab_selected”的图片,当标签处于“选中”状态时显示,而标签处于“未选中”状态时显示。
  • @mudit,我的查询是:当我们选择一个选项卡或单击一个按钮时,单击时我们会看到橙色类型的颜色。我想获得那种点击颜色(即橙色默认值)。如何获得那种颜色?
【解决方案2】:

我解决了这个问题。我很抱歉没有早点提到它。对不起,我刚刚错过了。 @Yugandhar,感谢您的关注。

【讨论】: