如何制作列表视图如下:
还有一个关于行布局的问题,我有这样的布局
<?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="match_parent" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="100dp"
android:background="@drawable/deals_list_row_gradient_background"
android:orientation="horizontal" >
<ImageView
android:id="@+id/dealImg"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="top"
android:src="@drawable/test" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:orientation="vertical" >
<TextView
android:id="@+id/dealDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:text="Lorem Ipsum dolor sit amet dolor sed a ite amkt Lantin dolor latim dk kuitshen sed iditur anet" />
<TextView
android:id="@+id/smth"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:text="...................................................."
android:textAppearance="?android:attr/textAppearanceSmall" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/dealNewPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginRight="5dp"
android:text="1248$"
android:textColor="@color/deals_list_new_price"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/dealOldPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginRight="15dp"
android:layout_toLeftOf="@+id/dealNewPrice"
android:text="2500$"
android:textColor="@color/deals_list_old_price"
android:textSize="15sp" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
但是我遇到了imageview问题,我不明白如何正确设置它的宽度和高度 也有很多人说我使用RalativeLayout是个坏主意
答案 0 :(得分:14)
您可以使用修改后的列表视图布局轻松完成此操作。以下是我的实施方式:
<RelativeLayout 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="@android:color/transparent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@android:color/transparent"
android:dividerHeight="10dp" />
</RelativeLayout>
以下是结果视图:
此屏幕截图是在xhdpi设备上拍摄的 - 您可以看到虚线的问题。请考虑使用ShapeDrawable,并指定android:dashGap
和android:dashWidth
。
答案 1 :(得分:7)
在xml中的listview中使用这两行:
android:divider="@android:color/transparent"
android:dividerHeight="10px"
并为您的Imageview尝试以下两个补充:
<ImageView
...
android:scaleType="fitCenter"
android:adjustViewBounds="true"
/>
答案 2 :(得分:2)
您正在寻找Google即时等中的卡式UI。您可以使用自定义库Cards-UI获得类似的效果。 https://github.com/afollestad/Cards-UI
答案 3 :(得分:0)
在ListView中设置这两个属性,它将提供顶部和底部边距
android:divider="@android:color/transparent"
android:dividerHeight="10dp"
并设置
android:layout_margin="7dp"
到ListView获取左右边距,它将给出所需的布局