Страница 1 из 1

Change press color in ListView with "layer-list"?

Добавлено: 08 июл 2015, 16:50
JDev
Здравствуйте,

подскажите пожалуйста, как мне изменить цвет фона при нажатии на элемент списка? Все не так сложно, но я для дизайна использую.

Код: Выделить всё

<?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/item_border" />
            <corners android:radius="5dp"/>
        </shape>
    </item>
    <item android:right="1dp" android:left="1dp" android:bottom="2dp" android:id="@+id/item_backgr_shape" >
        <shape
            android:shape="rectangle">
            <solid android:color="@color/item_background"/>
            <corners android:radius="5dp"/>
        </shape>
    </item>
</layer-list>
Нашел как программно менять, но фон тогда изменяется навсегда, а не при клике.

Код: Выделить всё

        LayerDrawable bgDrawable = (LayerDrawable)v.getBackground();
        GradientDrawable shape = (GradientDrawable) bgDrawable.findDrawableByLayerId(R.id.item_backgr_shape);
        shape.setColor(getActivity().getResources().getColor(R.color.list_background));
Спасибо.

Re: Change press color in ListView with "layer-list"?

Добавлено: 08 июл 2015, 17:53
Dark67

Re: Change press color in ListView with "layer-list"?

Добавлено: 09 июл 2015, 10:27
JDev
)) Пасиб, розобрался.

Re: Change press color in ListView with "layer-list"?

Добавлено: 09 июл 2015, 10:42
Dark67
А вот более продвинутый вариант https://developer.android.com/guide/top ... #StateList
так можно менять не только цвет, но и .....