0

我在我的应用程序中使用了卡片 UI 布局。它在 AVD (GN 4.2) 和我的物理设备 (Galaxy mini 2.3) 上看起来都很好,除了显示的边距不同。

影音:

在此处输入图像描述

物理设备:

在此处输入图像描述

如您所见,在 mini 上,没有左边距。

任何人都知道我做错了什么,我该如何解决这个问题?


我的布局代码:

list_row.xml:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight">

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginLeft="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginTop="0dp"
    android:layout_marginBottom="0dp"
    android:background="@drawable/card_layout">

        <TextView
        android:id="@+id/post_text"    
        android:layout_gravity="left|center_vertical"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:textColor="@android:color/primary_text_light"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dp" />

    </LinearLayout>

</FrameLayout>

main_activity.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#e5e5e5"
    android:orientation="vertical" >

    <ListView
        android:id="@+id/posts_list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_marginTop="5dp"
        android:divider="@null"
        android:dividerHeight="0dp" >
    </ListView>

</LinearLayout>

card_layout.xml:

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

<item android:bottom="8dp">
    <shape
        android:dither="true"
        android:shape="rectangle">            
        <corners android:radius="2dp" />           
        <solid android:color="#ccc" />
    </shape>
</item>
<item android:bottom="10dp">
    <shape
        android:dither="true"
        android:shape="rectangle" >            
        <corners android:radius="2dp" />            
        <solid android:color="@android:color/white" />

        <padding
            android:bottom="8dp"
            android:left="8dp"
            android:right="8dp"
            android:top="8dp" />
    </shape>
</item>

</layer-list>
4

1 回答 1

3

使用带有 layerlist drawables 的边距曾经给我带来过类似的问题。如果您将填充设置为根而不是设置边距,您的问题将得到解决。

更改后您的 list_row.xml 应该是:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/listPreferredItemHeight" 
    android:paddingLeft="8dp"
    android:paddingRight="8dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/card_layout" >

        <TextView
            android:id="@+id/post_text"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_gravity="left|center_vertical"
            android:layout_marginBottom="5dp"
            android:layout_weight="1"
            android:textColor="@android:color/primary_text_light" />
    </LinearLayout>

</FrameLayout>

希望这可以帮助。

于 2013-11-04T18:05:21.890 回答