Поле делителя списка

Я пытаюсь установить поле на listview делитель.
Разделитель - пунктирная линия:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line" >
    <stroke
        android:dashGap="1dp"
        android:dashWidth="1.5dp"
        android:width="1dp"
        android:color="#FF404040" />

    <size android:height="3dp" />

</shape>

и listview где я установил делитель

<ListView
    android:id="@+id/lv_news_feed_list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/white"
    android:divider="@drawable/ch_dashed_line_divider"
    />

но я хочу разделить поля слева и справа. Я также пытался установить отступы по форме, но listview игнорирует отступы.

    <padding
        android:bottom="15dp"
        android:left="15dp"
        android:right="15dp"
        android:top="15dp" />

Есть ли возможность установить наценку на listview делитель - кроме как в getView() адаптера?

5 ответов

Решение

Вставка - это путь

<?xml version="1.0" encoding="UTF-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:insetLeft="15dp"
    android:insetRight="15dp" >

    <shape
        android:shape="line" >
        <stroke
            android:dashGap="1dp"
            android:dashWidth="1.5dp"
            android:width="1dp"
            android:color="#FF404040" />

            <size android:height="3dp" />

    </shape>

</inset>

Используйте 'вставку'.....

(List_divider.xml)

<?xml version="1.0" encoding="UTF-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:insetLeft="50dp"
    android:insetRight="50dp" >

 <shape>
    <solid android:color="@color/orange" />
    <corners android:radius="2.0dip" />
</shape>

</inset>

и в вашем списке добавить, как это...

<ListView
    android:dividerHeight="2dp"
    android:divider="@drawable/list_divider"
    ...
/>

Вы можете установить значение вставки по желанию...

Вы можете использовать следующую идею:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <solid android:color="@color/table_background"/>
    </shape>
</item>
<item android:left="2dp" android:right="2dp">
    ... your shape here ...
</item> </layer-list>

Меня устраивает. Надеюсь, это поможет.

Вы можете использовать градиент, чтобы получить правое и левое поле вместо обводки. Попробуйте этот пример, он начинается и заканчивается черным, в центре вы получите белый цвет. Похоже, вы дали поле

 <gradient android:startColor="#000000" android:centerColor="#ffffff"
    android:endColor="#000000" />

Я не верю, что это возможно:/ Хотя, если вы добавляете свой собственный объект рисования внизу каждого элемента списка и удаляете разделитель ListViews, вы можете настроить его так, как вам хочется:)

Создайте папку res/drawable и создайте новый xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <solid android:color="#666666"></solid>

</shape>

..Тогда используйте этот рисованный элемент в вашем списке.

Или очень быстрый и грязный способ создать тонкий LinearLayout (или другой макет) с цветным фоном в нижней части элемента списка, чтобы имитировать настраиваемый разделитель ListView.

Не правильное решение, просто некоторые идеи Fixit;)

Другие вопросы по тегам