【问题标题】:tabLayout.setSelectedTabIndicatorColor(int color) not workingtabLayout.setSelectedTabIndicatorColor(int color)不起作用
【发布时间】:2016-01-15 02:51:55
【问题描述】:
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
        tabLayout.addTab(tabLayout.newTab().setText("All Calculators"));
        tabLayout.addTab(tabLayout.newTab().setText("My Calculators"));
        tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

        final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
        final PagerAdapter adapter = new PagerAdapter
                (getSupportFragmentManager(), tabLayout.getTabCount());
        viewPager.setAdapter(adapter);

        viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));

//        tabLayout.setSelectedTabIndicatorColor(Color.parseColor("#71CDF5"));

        tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                viewPager.setCurrentItem(tab.getPosition());
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });
//does not change the tab's title color when selected
        tabLayout.setSelectedTabIndicatorColor(Color.parseColor("#71CDF5"));
    }

我做错了什么?

【问题讨论】:

    标签: android android-layout android-support-library androiddesignsupport android-tablayout


    【解决方案1】:

    我确实找到了解决此问题的方法。 在styles.xml 我添加了以下代码。

    <style name="AppTheme.TabStyle" parent="Widget.Design.TabLayout">
            <item name="tabTextAppearance">@style/AppTheme.TextStyle</item>
            <item name="tabTextColor">#000000</item>
            <item name="tabSelectedTextColor">#71CDF5</item>
            <!--<item name="tabIndicatorColor">@color/primaryDark</item>-->
            <!--<item name="tabIndicatorHeight">3dp</item>-->
            <!--<item name="android:background">?attr/colorPrimary</item>-->
        </style>
    
        <style name="AppTheme.TextStyle" parent="TextAppearance.Design.Tab">
            <item name="android:textSize">14sp</item>
            <item name="textAllCaps">false</item>
        </style>
    

    然后在我的标签布局中我添加了样式

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.design.widget.TabLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#3B4245"
        style="@style/AppTheme.TabStyle"
        android:elevation="6dp">
    
    </android.support.design.widget.TabLayout>
    

    然后就完成了。我确实从主类中删除了以下代码

    tabLayout.setSelectedTabIndicatorColor(Color.parseColor("#71CDF5"));
    

    也许有更好的方法来解决这个问题,我不确定这是实现这个问题的确切方法。

    【讨论】:

    • 对我来说,它在通过 UI 选择选项卡(点击选项卡)但调用 viewPager.setCurrentItem(...) 移动指示器但不更新文本颜色时起作用。我正在使用设计库 23.1.0。我想知道这是否是库中的错误
    • @jfcartier 我没有尝试点击 UI,但如果它是库中的一个错误,很多人都会面临同样的问题,但这里的情况似乎并非如此。如果你发现了,请分享你的知识:)
    • 我也面临与@jfcartier 提到的相同的问题。 viewPager.setCurrentItem() 不会更改选项卡指示器颜色,但不会更改文本颜色。我也在使用支持库。有人找到解决方案了吗?
    【解决方案2】:

    我也在尝试相同的方法,最后提出了一个解决方案。我尝试了所有方法,最后我尝试了以下解决方案,它对我很有帮助。

    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
                @Override
                public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    
                }
    
                @Override
                public void onPageSelected(int position) {
                    tabLayout.getTabAt(position).select();
    
                }
    
                @Override
                public void onPageScrollStateChanged(int state) {
    
                }
            });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-18
      • 1970-01-01
      • 1970-01-01
      • 2017-03-17
      • 2021-11-09
      • 1970-01-01
      • 2019-08-09
      相关资源
      最近更新 更多