Android提升属性在模拟器上的列表视图中不起作用,但它在android studio中显示正确的输出?

时间:2015-09-18 06:36:32

标签: android listview android-listview android-custom-view

问题是我想在列表视图中显示像自定义视图的卡片视图。 视图在模拟器中显示正常,但在模拟器中显示不同。

以下是可以同时看到两个预览的图像链接。

列表视图代码:

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/custom_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:divider="@android:color/transparent"
android:dividerHeight="10.0sp"
android:clipToPadding="false"
tools:listitem="@layout/listlayout">
</ListView>

自定义视图代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:elevation="10dp">


    <ImageView
        android:layout_width="64dp"
        android:layout_height="64dp"
        android:id="@+id/productImage"
        android:layout_gravity="center" />



        <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_marginLeft="5dp"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="@string/product_title"
            android:id="@+id/title"
            android:textStyle="bold" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="shortDescription"
            android:textSize="@dimen/abc_text_size_body_1_material"
            android:id="@+id/shortDescription" />
    </LinearLayout>

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="price"
            android:id="@+id/price"
            android:textAlignment="center"
            android:gravity="center"
            android:singleLine="true"/>

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="newPrice"
            android:singleLine="true"
            android:id="@+id/newPrice"
            android:autoText="false"
            android:gravity="center" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:text="Buy"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:id="@+id/buy"
            android:gravity="center"
            android:layout_gravity="center" />
    </LinearLayout>
</LinearLayout>

2 个答案:

答案 0 :(得分:4)

您需要在LinerLayout上再添加一个父布局。添加属性android:clipToPadding="false"。如需更多信息,请阅读此回复Android "elevation" not showing a shadow

答案 1 :(得分:0)

在CardView的XML中

试试这个:

app:cardUseCompatPadding="true"