TabLayout - underline невыбранной вкладки android 4.1.1 (16 api)

398
13 апреля 2018, 18:22

Заметил такую проблему на андройде 4.1.1 с отображением underline у невыбранной вкладки:

Как это выглядит на 4.2.2 (api 17):

Как это выглядит на 4.1.1 (api 16):

То есть по идее должна отрисоваться тонкая линия серого цвета, но андройд мало того, что игнорирует ее, так еще и закрашивает вообще весь tablayout черным цветом.

Линию сделал данным способом:

У свойства app:tabBackground указал xml файл со следующим содержимым:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- UNSELECTED TAB STATE -->
<item android:state_selected="false" android:state_pressed="false" >
    <layer-list>
        <item>
            <shape>
                <solid android:color="@color/colorGrey1" />
            </shape>
        </item>
        <item android:top="-2dp" android:right="-2dp" android:left="-2dp">
            <shape android:shape="rectangle">
                <stroke android:width="1dp" android:color="@color/colorGrey5"/>
            </shape>
        </item>
    </layer-list>
</item>
</selector>

Также попробовал и вот этот способ:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <solid android:color="@color/white" />
    </shape>
</item>
<item android:gravity="bottom">
    <shape android:shape="rectangle">
        <solid android:color="@color/shl_common_default_color" />
        <size android:height="1.5dp" />
    </shape>
</item>
</layer-list>

Но все по-прежнему также, решения данной проблемы не нашел, заранее спасибо :\

Answer 1

Для того чтобы окрасить фон, используйте свойство background

android:background="#333"

Для того полоски не нужен никакой свой drawable

ваш вариант легко заменяется свойствами tabIndicatorHeight и tabIndicatorColor

app:tabIndicatorHeight="1.5dp"
app:tabIndicatorColor="@color/shl_common_default_color"

Невыбранному табу не нужна своя полоска

сделайте серую полоску всему TabLayout, область под выбранным табом будет закрываться родным индикатором.

READ ALSO
Можно ли сравнить int и null?

Можно ли сравнить int и null?

Такая конструкция

318
Конверт в RealmList

Конверт в RealmList

Никто не подскажет как можно правильно конвертить в RealmList<> например Map<String, String> ну или List<SomeClass>?

213
Передача данных ArrayList

Передача данных ArrayList

В приложении для android у меня есть три Activity, Activity1, Activity2, Activity3 все они открываются в таком же порядкеЯ пытаюсь передать из Activity1 данные ArrayList...

240