在SlidingTabLayout中自定义选定的选项卡文本颜色

乔尔

我正在使用Google的SlidingTabLayout(https://developer.android.com/samples/SlidingTabsBasic/src/com.example.android.common/view/SlidingTabLayout.html)。

它工作正常,但是我想要的是将所选标题以粗体显示并使用不同的颜色...

关于此帖子:SlidingTabLayout中的自定义未选择的选项卡文本颜色

我使用选择器在drawable中创建了一个text_tab.xml:

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

当我在populateTabStrip()方法中时

 tabTitleView.setTextColor(getResources().getColorStateList(R.drawable.text_tab));

颜色始终是未选中的颜色之一。

我可能做错了什么,或者还有另一种方式来自定义所选标签标题。

有人有主意吗?

谢谢

天墙

问题是,滑动布局不会将项目的状态设置为selected这是我解决问题的方法。

1)为您的视图创建COLOR选择器(ColorStateList)。您可以这样想象:

/res/color/tab_text_color.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:color="@color/white" android:state_selected="true"/>
  <item android:color="@color/black"/>
</selector>

2)将创建的选择器放置到项目的视图textColor(或其他必需的)属性中:

<TextView
  ...
  android:textColor="@color/tab_text_color"
  ... />

3)在文件SlidingTabLayout.java中进行以下更改:

View oldSelection = null; // new field indicating old selected item

// method to remove `selected` state from old one
private void removeOldSelection() { 
    if(oldSelection != null) {
        oldSelection.setSelected(false);
    }
}

// improve method scrollToTab() as follows
private void scrollToTab(int tabIndex, int positionOffset) {
    final int tabStripChildCount = mTabStrip.getChildCount();
    if (tabStripChildCount == 0 || tabIndex < 0 || tabIndex >= tabStripChildCount) {
        return;
    }

    View selectedChild = mTabStrip.getChildAt(tabIndex);
    if (selectedChild != null) {

        if(positionOffset == 0 && selectedChild != oldSelection) { // added part
            selectedChild.setSelected(true);
            removeOldSelection();
            oldSelection = selectedChild;
        }

        int targetScrollX = selectedChild.getLeft() + positionOffset;

        if (tabIndex > 0 || positionOffset > 0) {
            // If we're not at the first child and are mid-scroll, make sure we obey the offset
            targetScrollX -= mTitleOffset;
        }

        scrollTo(targetScrollX, 0);
    }
}

private void populateTabStrip() {
    removeOldSelection(); // add those two lines
    oldSelection = null;
    ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SlidingTabLayout中的自定义未选择的选项卡文本颜色

来自分类Dev

SlidingTabLayout中的自定义未选择的选项卡文本颜色

来自分类Dev

使用自定义字体更改Tablayout的选定选项卡颜色

来自分类Dev

在功能区中添加自定义选项卡

来自分类Dev

WPF中的“自定义样式”选项卡

来自分类Dev

自定义JTabbedPane中的选项卡呈现顺序

来自分类Dev

在自定义嵌套选项卡中定位子选项卡

来自分类Dev

创建自定义选项卡

来自分类Dev

如何使用Android中的代码使用TabLayout更改选定的选项卡文本颜色?

来自分类Dev

在2选项卡视图控制器中更改自定义选项卡栏位置

来自分类Dev

为什么JTabbedPane中的自定义选项卡的边框不覆盖标准选项卡的边框?

来自分类Dev

为选项卡布局中的每个选项卡设置自定义视图时出错

来自分类Dev

DocuSignAPI:带有值的可选“自定义文本”选项卡无法修改

来自分类Dev

如何在自定义功能区选项卡(Typescript / Javascript)中启用/禁用选项?

来自分类Dev

如何使选定的选项卡更改颜色?

来自分类Dev

jQuery终端自定义选项卡完成

来自分类Dev

自定义ActionBar选项卡支持的填充

来自分类Dev

如何自定义android选项卡或背景更改?

来自分类Dev

自定义 UIView 上的更改选项卡

来自分类Dev

易于响应的选项卡自定义选项卡激活

来自分类Dev

drupal 8中的自定义模块,未在管理部分中创建选项卡

来自分类Dev

如何创建一个自定义的android选项卡小部件,所选的选项卡将更改其默认颜色背景?

来自分类Dev

如何在magento 1.8.0.1中创建销售订单自定义选项卡

来自分类Dev

如何在Java中实现自定义选项卡控件

来自分类Dev

Swift和XCode 6中的自定义选项卡栏

来自分类Dev

Woocommerce单一产品选项卡中的自定义字段

来自分类Dev

在WooCommerce中以编程方式添加自定义设置选项卡以管理产品数据

来自分类Dev

如何在自定义约会选项卡中运行代码?

来自分类Dev

为什么自定义可折叠项在选项卡中无法正常工作?

Related 相关文章

  1. 1

    SlidingTabLayout中的自定义未选择的选项卡文本颜色

  2. 2

    SlidingTabLayout中的自定义未选择的选项卡文本颜色

  3. 3

    使用自定义字体更改Tablayout的选定选项卡颜色

  4. 4

    在功能区中添加自定义选项卡

  5. 5

    WPF中的“自定义样式”选项卡

  6. 6

    自定义JTabbedPane中的选项卡呈现顺序

  7. 7

    在自定义嵌套选项卡中定位子选项卡

  8. 8

    创建自定义选项卡

  9. 9

    如何使用Android中的代码使用TabLayout更改选定的选项卡文本颜色?

  10. 10

    在2选项卡视图控制器中更改自定义选项卡栏位置

  11. 11

    为什么JTabbedPane中的自定义选项卡的边框不覆盖标准选项卡的边框?

  12. 12

    为选项卡布局中的每个选项卡设置自定义视图时出错

  13. 13

    DocuSignAPI:带有值的可选“自定义文本”选项卡无法修改

  14. 14

    如何在自定义功能区选项卡(Typescript / Javascript)中启用/禁用选项?

  15. 15

    如何使选定的选项卡更改颜色?

  16. 16

    jQuery终端自定义选项卡完成

  17. 17

    自定义ActionBar选项卡支持的填充

  18. 18

    如何自定义android选项卡或背景更改?

  19. 19

    自定义 UIView 上的更改选项卡

  20. 20

    易于响应的选项卡自定义选项卡激活

  21. 21

    drupal 8中的自定义模块,未在管理部分中创建选项卡

  22. 22

    如何创建一个自定义的android选项卡小部件,所选的选项卡将更改其默认颜色背景?

  23. 23

    如何在magento 1.8.0.1中创建销售订单自定义选项卡

  24. 24

    如何在Java中实现自定义选项卡控件

  25. 25

    Swift和XCode 6中的自定义选项卡栏

  26. 26

    Woocommerce单一产品选项卡中的自定义字段

  27. 27

    在WooCommerce中以编程方式添加自定义设置选项卡以管理产品数据

  28. 28

    如何在自定义约会选项卡中运行代码?

  29. 29

    为什么自定义可折叠项在选项卡中无法正常工作?

热门标签

归档