Как изменить значок нижней вкладки и цвет текста с помощью пользовательского макета?

  1. Я добавил пользовательский макет.
  2. Я использовал tabLayout.setOnTabSelectedListener(); но, тем не менее, он не показывает изменение выбранной иконки.
  3. Я сделал это
  4. я хочу сделать это

2 ответа

В вашем стиле XML использовать, как это

  <android.support.design.widget.TabLayout
        android:id="@+id/tab_layout"
        style="@style/AppTabLayout"
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:background="?attr/colorPrimary"
        />

и в вашем стиле Style.xml tabSelectedTextColor с вашей ценностью, как это.

<style name="AppTabLayout" parent="Widget.Design.TabLayout">
        <item name="tabIndicatorHeight">0dp</item>
        <item name="tabPaddingStart">0dp</item>
        <item name="tabPaddingEnd">0dp</item>
        <item name="tabBackground">?attr/selectableItemBackground</item>
        <item name="tabTextAppearance">@style/AppTabTextAppearance</item>
        <item name="tabSelectedTextColor">#ffffff</item> //your color 
        <item name="tabGravity">fill</item>
        <item name="tabMode">fixed</item>

    </style>

и это сделано.:)

tabLayout.setOnTabSelectedListener(
            new TabLayout.ViewPagerOnTabSelectedListener(viewPager) 
            {

                @Override
                public void onTabSelected(TabLayout.Tab tab) 
                {
                    super.onTabSelected(tab);
                    //Set your color here
                    int tabIconColor = ContextCompat.getColor(context, R.color.colorActive);
                    tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN);
                }

                @Override
                public void onTabUnselected(TabLayout.Tab tab) 
                {
                    super.onTabUnselected(tab);
                    //Set your color here
                    int tabIconColor = ContextCompat.getColor(context, R.color.colorInactive);
                    tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN);
                }

                @Override
                public void onTabReselected(TabLayout.Tab tab) 
                {
                    super.onTabReselected(tab);
                }
            }
    );
Другие вопросы по тегам