web-dev-qa-db-ja.com

リストビューディバイダーマージン

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()を除く)。

32
Fabian

差し込みは行く方法です

<?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>
84
Wayne

「インセット」を使用.....

(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"
    ...
/>

必要に応じてインセット値を設定できます...

16
ASP

次のアイデアを使用できます。

<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>

わたしにはできる。それが役立つことを願っています。

5

Uは、Gradientを使用して、ストロークの代わりに右と左のマージンを取得できます。

 <gradient Android:startColor="#000000" Android:centerColor="#ffffff"
    Android:endColor="#000000" />
3
Pradeep

私はそれが可能だとは思わない:/各リスト項目の下部に独自のドロウアブルを追加し、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仕切りを偽造することができます。

適切な解決策ではなく、いくつかの修正案だけです;)

1
DecodeGnome