76

ここに画像の説明を入力

画像に表示されているように、リスト項目にパディングを与えるにはどうすればよいですか。画像のようにレイアウトに仕切りを作りたいです。

これは私のリストフラグメントコードです

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" 
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="25dp"
android:layout_marginRight="25dp">

 <ListView 
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
     android:id="@+id/listV_main"
    android:layout_marginLeft="25dp"
android:layout_marginRight="25dp"/>

これは私のリストセクションコードです

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="10dp"
android:paddingTop="10dp"
android:paddingRight="10dp"
android:paddingBottom="10dp">
<include
    android:id="@+id/list_item_section_text"
    layout="@android:layout/preference_category"
     />

これは私のリスト項目コードです

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:adjustViewBounds="true"
android:paddingRight="?android:attr/scrollbarSize"
   >
<ImageView
    android:id="@+id/showlist_item_entry_drawable"
    android:layout_width="82dp"
    android:adjustViewBounds="true"
    android:layout_height="68dp"
    android:scaleType="fitXY"
    android:paddingLeft="9dp"/> 
<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dip"
    android:layout_marginRight="6dip"
    android:layout_marginTop="6dip"
    android:layout_marginBottom="6dip"
    android:layout_weight="1"
>
    <TextView android:id="@+id/list_item_entry_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:ellipsize="marquee"
        android:fadingEdge="horizontal" /> 
    <TextView android:id="@+id/list_item_entry_summary"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/list_item_entry_title"
        android:layout_alignLeft="@id/list_item_entry_title"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:singleLine="true"
        android:textColor="?android:attr/textColorSecondary" />
</RelativeLayout>

4

6 に答える 6

18

仕切りにパディングが必要ですか?カスタム drawable-shape を次のように作成します。

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

    <item
        android:left="10dp"
        android:right="10dp">
        <shape android:shape="rectangle" >
            <solid android:color="@android:color/black" />
        </shape>
    </item>

</layer-list>

xml で ListView の仕切りとして設定します。

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

UPD

私はちょうどListViewxmlに持っています:

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:dividerHeight="2dp"
android:divider="@drawable/line"
/>

line.xmlのような仕切りdrawable:

<?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item
        android:left="10dp"
        android:right="10dp">
        <shape android:shape="rectangle" >
            <solid android:color="@android:color/black" />
        </shape>
    </item>
</layer-list>

ListViewin コードに変更を加えないでください。リソースが正しく構築されていない場合は、Cleanを使用してみてください。

于 2012-12-27T12:21:20.000 に答える
4

@Giulio Piancastelli が @ASP の回答で述べたよう<inset>に、リスト コンテナーの背景色がリスト内の行と同じでない場合、失敗します。<layer-list>1 つの解決策は、以下のように使用することです。

//This item is to overlay the container colour with the row background colour
<item
    android:left="0dp"
    android:right="0dp">
    <shape android:shape="rectangle" >
        <solid android:color="@color/row_background" />
    </shape>
</item>

//This item is the divider, put it at bottom so it will overlay the background colour
<item
    android:left="92dp"
    android:right="0dp">
    <shape android:shape="rectangle" >
        <solid android:color="@color/divider
    </shape>
</item>

次に、ほとんどの回答が示唆するように、それを仕切りとして設定できます。

<ListView
    android:dividerHeight="2dp"
    android:divider="@drawable/layer_list"
    ...
/>
于 2014-12-24T04:54:01.830 に答える
0

これは、この質問の代替ソリューションである必要があります。

<View 
   android:layout_width="match_parent"
   android:layout_height="1dp"
   android:layout_alignParentBottom="true"
   android:background="color/secondary_text"
   android:layout_marginTop="16dp" />
于 2015-10-18T07:18:03.173 に答える