SlidingTabStrip с персонализиран фон и индикатор в Android

Използвам SlidingTabLayout, който го взимам от тук. Там намерих почти перфектно решение за моя проблем с раздела. Все още обаче имам някои проблеми с този пример. Проблемът с този пример е, че той използва един и същи цвят за избрани раздели и неизбрани. Но искам да променя фона на раздела, когато е избран. Опитах се да поставя фон на селектор към генерираните раздели в метода createDefaultTabView(Context context) в SlidingTabLayout.java Когато направя това, индикаторите просто изчезват. Опитах се да поставя този селектор на функцията onDraw() в SlidingTabStrip.java, но резултатът беше същият.

И така, можете ли да ми кажете изход?

Между другото, аз използвам лента с инструменти. Ето защо използвам SligingTabStrip (както прочетох, TabHost не може да работи с ToolBar). Може би и с това греша.


person ilkengin    schedule 19.09.2015    source източник


Отговори (1)


За да промените цвета на избрания раздел, променете файла за избор като

SlidingTabLayout.java

tabTitleView.setTextColor(getResources().getColorStateList(
                    R.color.selector));

selector.xml

<?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/blue"/>
    <item android:state_pressed="true" android:color="@android:color/green"/>
    <item android:color="#ccc"/>

</selector>
person akhil batlawala    schedule 19.09.2015
comment
Нямам предвид TextColor. Това е фонът на textView, за който говоря. Когато се опитам да направя това за фон, индикаторът изчезва. - person ilkengin; 19.09.2015
comment
tabView.setBackgroundResource(R.drawable.tab_indicator_ab_example); ‹селектор xmlns:android=schemas.android.com/apk/res/android› ‹!-- Нефокусирани състояния --› ‹item android:state_focused=false android:state_selected=false android:state_pressed=false android:drawable=@color/primaryColor /› ‹item android:state_focused=false android:state_selected=true android :state_pressed=false android:drawable=@color/primaryColorDark /›‹/selector› опитайте това. - person akhil batlawala; 19.09.2015
comment
Не, също не проработи. Той хвърля изключение като android.content.res.Resources$NotFoundException: File res/drawable/tab_indicator_ab_example.xml от ресурс за рисуване ID #0x7f0200ef Мисля, че е нещо с android:drawable= @color/ анотация - person ilkengin; 19.09.2015