У меня есть макет вкладки с пользовательским макетом для вкладок. Я хочу, чтобы текст был белым, когда выбран вкладка, а серый, когда его нет, я достиг этого с помощью селектора состояний, и он отлично работает, когда я сдвигаюсь со вкладки на вкладке или когда я нажимаю на один, но я хочу, чтобы динамически изменять вкладку на кнопку мыши из фрагмента таким образом, я использую это:как перемещать цвет текста вкладки как индикатор?
MainActivity.viewPager.setCurrentItem(2);
, когда я использую это, чтобы изменить на вкладке мой текст на вкладка не изменяется, но индикатор делает,
поэтому я попытался настроить переключатель (см. ниже) и называть его, когда я меняю табуляции следующим образом:
и это работает с вкладкой, которую я переместил, имеет белый текст, а вкладка, которую я перенес из текста, является серым, но если я нажму другую вкладку после использования моего переключателя, я получаю две вкладки с белым текстом (странно прокручивая не имеет этой проблемы и работает отлично), индикатор всегда находится в правильном положении, поэтому я задаюсь вопросом, знает ли кто-нибудь, могу ли я получить его (индикаторы), я все еще новичок во всем этом, поэтому, возможно, есть более простой ответить
большое спасибо
Heres мой переключатель .... на всякий случай! хахаха
public static void tabTitleColor(){
int position2 = viewPager.getCurrentItem();
switch (position2){
case 0:
tabLayout.getTabAt(0).getCustomView().setSelected(true);
tabLayout.getTabAt(1).getCustomView().setSelected(false);
tabLayout.getTabAt(2).getCustomView().setSelected(false);
tabLayout.getTabAt(3).getCustomView().setSelected(false);
System.out.println("tab "+ position2);
break;
case 1:
tabLayout.getTabAt(1).getCustomView().setSelected(true);
tabLayout.getTabAt(0).getCustomView().setSelected(false);
tabLayout.getTabAt(2).getCustomView().setSelected(false);
tabLayout.getTabAt(3).getCustomView().setSelected(false);
System.out.println("tab "+ position2);
break;
case 2:
tabLayout.getTabAt(2).getCustomView().setSelected(true);
tabLayout.getTabAt(1).getCustomView().setSelected(false);
tabLayout.getTabAt(0).getCustomView().setSelected(false);
tabLayout.getTabAt(3).getCustomView().setSelected(false);
System.out.println("tab "+ position2);
break;
case 3:
tabLayout.getTabAt(3).getCustomView().setSelected(true);
tabLayout.getTabAt(1).getCustomView().setSelected(false);
tabLayout.getTabAt(2).getCustomView().setSelected(false);
tabLayout.getTabAt(0).getCustomView().setSelected(false);
System.out.println("tab "+ position2);
break;
}
}
добавлять мой селектор, как просил он живет в папке с именем цвета
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:color="@android:color/white" />
<item android:state_focused="true" android:color="@android:color/white" />
<item android:state_pressed="true" android:color="@android:color/white" />
<item android:color="#d1c9c9" />
</selector>
Попробуйте это tabLayout.setTabTextColors (Color.parseColor ("# 457815"), цвет .parseColor ("# 986527")); tabLayout.setSelectedTabIndicatorColor (Color.parseColor ("# 124595")); –
им жаль спрашивать @Rakshit Nawani, но вы прочитали мой вопрос? моя главная проблема прямо сейчас меняет цвет назад после его изменения, когда вы нажимаете вкладку, если я прокручиваю через них вкладки меняют цвет, просто отлично, больше о получении выбранной вкладки, я думаю, надеюсь, что вы сможете помочь –
Пожалуйста, покажите свой цвет state list – Karakuri