Android 表格布局选项卡样式

Android 表格布局选项卡样式,android,android-design-library,Android,Android Design Library,我使用com.android.support中的新TabLayout。我想更改所选/未选选项卡的背景。 我查看了源代码,发现只有tabBackground属性会更改所有选项卡的颜色,并且不会控制所选选项卡的颜色 如何控制选中/未选中的选项卡背景?我阅读并想出了该怎么做。这确实是一个类似的问题,但我特别为TabLayout找到了很棒的解决方案: <android.support.design.widget.TabLayout android:id="@+id/tabs" an

我使用
com.android.support中的新
TabLayout
。我想更改所选/未选选项卡的背景。 我查看了源代码,发现只有
tabBackground
属性会更改所有选项卡的颜色,并且不会控制所选选项卡的颜色

如何控制选中/未选中的选项卡背景?

我阅读并想出了该怎么做。这确实是一个类似的问题,但我特别为
TabLayout
找到了很棒的解决方案:

<android.support.design.widget.TabLayout
    android:id="@+id/tabs"
    android:layout_width="match_parent"
    android:layout_height="48dp"
    android:background="@color/tab_layout_color"
    app:tabIndicatorHeight="48dp"
    app:tabIndicatorColor="@color/selected_tab_color"
    />


请注意,
layout\u height
tabIndicatorHeight
具有相同的高度。因此,通过这种方式,您可以获得漂亮的过渡动画。

定义:

    <style name="AppTabLayout" parent="Widget.Design.TabLayout">
        <item name="tabMaxWidth">@dimen/tab_max_width</item>
        <item name="tabIndicatorColor">?attr/colorAccent</item>
        <item name="tabIndicatorHeight">4dp</item>
        <item name="tabPaddingStart">6dp</item>
        <item name="tabPaddingEnd">6dp</item>
        <item name="tabBackground">?attr/selectableItemBackground</item>
        <item name="tabTextAppearance">@style/AppTabTextAppearance</item>
        <item name="tabSelectedTextColor">@color/range</item>
    </style>

    <!-- for text -->
    <style name="AppTabTextAppearance" parent="TextAppearance.Design.Tab">
        <item name="android:textSize">12sp</item>
        <item name="android:textColor">@color/orange</item>
        <item name="textAllCaps">false</item>
    </style>

@尺寸/标签最大宽度
?属性/颜色重音
4dp
6dp
6dp
?属性/可选择项背景
@样式/应用选项卡文本外观
@颜色/范围
12便士
@颜色/橙色
假的
应用:

<android.support.design.widget.TabLayout
    style="@style/AppTabLayout"
    app:tabTextAppearance="@style/AppTabTextAppearance"
    android:layout_width="match_parent"
    .... />

我也遇到了这个问题。我刚刚在整个项目中搜索了
tabIndicatorColor
,在一些
R.java
中找到了以下代码:

       @see #TabLayout_tabBackground
       @see #TabLayout_tabContentStart
       @see #TabLayout_tabGravity
       @see #TabLayout_tabIndicatorColor
       @see #TabLayout_tabIndicatorHeight
       @see #TabLayout_tabMaxWidth
       @see #TabLayout_tabMinWidth
       @see #TabLayout_tabMode
       @see #TabLayout_tabPadding
       @see #TabLayout_tabPaddingBottom
       @see #TabLayout_tabPaddingEnd
       @see #TabLayout_tabPaddingStart
       @see #TabLayout_tabPaddingTop
       @see #TabLayout_tabSelectedTextColor
       @see #TabLayout_tabTextAppearance
       @see #TabLayout_tabTextColor
所以问题就解决了。愿这对你有所帮助。

i、 e.我使用IDEA

如果您查看
TabLayout.class
您将注意到选项卡实际布局的内部
选项卡视图.class
。它的布局与任何其他具有
isSelected
属性的布局相同。选择tab也会对此产生影响,所以您所需要做的就是创建选择器背景可绘制,如

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@color/tab_bg_selected"/>
<item android:drawable="@color/tab_bg_unselected"/></selector>

并将其附加到tabBackground属性,例如,类似XML的格式

<android.support.design.widget.TabLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:tabBackground="@drawable/tab_bg"
            app:tabIndicatorHeight="4dp"/>


可能重复的@Doraemon这篇文章有糟糕的代码填充,没有关于
TabLayout
的信息,对不起。@jlopez没有重复,他问的是
TabLayout
,不是关于actionBar选项卡为什么“问题解决了”?由此,我们如何设置所选选项卡背景?哪里有所谓的所选选项卡背景?@Forte_201092在
TabLayout
中,所选选项卡用
tabIndicatorColor
表示,因此,在
TabLayout
中,我们无法更改所选选项卡的背景?@AnhTriet您必须使用两种状态定义
可绘制选择器
:已按下和未按下(或已选中/未选中我不记得了,您知道了)。然后将此选择器设置为tabBackground。因此,您可以控制所选的标签页背景。如何在两个标签页之间放置分隔符?此解决方案有一个错误-指示器与标签页文本重叠