Android ListItem 显示不正确
Android ListItem Not Displaying Correctly
我创建了一个 ListItem,它在基于 REST 的应用程序中用于填充 ListView。 Android studio 中的预览看起来正确,但应用程序本身显示得很奇怪。对于下面提供的布局中的 TextView,我弄乱了 match_parent 和 wrap_content。
基本上我的目标是与 GMail 界面类似的布局。
附带说明一下,lbl_date 和 lbl_mileage 需要优先处理,不应被截断或隐藏。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="4dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:orientation="horizontal">
<TextView
android:id="@+id/lbl_title"
android:layout_weight=".9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="4dp"
android:layout_marginStart="10dp"
android:text="Title"
android:textSize="16sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/lbl_date"
android:layout_weight=".1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:gravity="right"
android:text="Date"
android:textStyle="bold"
android:textSize="12sp"
android:textColor="@color/blue_dark"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/lbl_details"
android:layout_weight=".9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="4dp"
android:layout_marginStart="10dp"
android:text="Details"
android:scrollHorizontally="true"
android:ellipsize="end"
android:maxLines="2"
android:textColor="@color/grey"/>
<TextView
android:id="@+id/lbl_mileage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:gravity="right"
android:text="0.0"
android:textColor="@color/blue_dark"/>
</LinearLayout>
</LinearLayout>
在 Android Studio 中预览
在模拟器/设备中查看
当您使用 LinearLayout 和属性 layout_weight 时,如果 orientation是水平,layout_width应该设置为0dp,如果方向是vertical layout_height 应设置为 0dp。
努力改变
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:orientation="horizontal">
<TextView
android:id="@+id/lbl_title"
android:layout_weight=".9"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="4dp"
android:layout_marginStart="10dp"
android:text="Title"
android:textSize="16sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/lbl_date"
android:layout_weight=".1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:maxLines="1"
android:gravity="right"
android:text="Date"
android:textStyle="bold"
android:textSize="12sp"
android:textColor="@color/blue_dark"/>
</LinearLayout>
希望有用。
下面的代码将使您的日期文本保持在右侧。
使用 width=wrapContent 和 weight=0(默认)让你的组件不被权重函数截断或拉伸。
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:orientation="horizontal">
<TextView
android:id="@+id/lbl_title"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="4dp"
android:layout_marginStart="10dp"
android:text="Title"
android:textSize="16sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/lbl_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:text="Date"
android:textStyle="bold"
android:textSize="12sp"
android:textColor="@color/blue_dark"/>
</LinearLayout>
我创建了一个 ListItem,它在基于 REST 的应用程序中用于填充 ListView。 Android studio 中的预览看起来正确,但应用程序本身显示得很奇怪。对于下面提供的布局中的 TextView,我弄乱了 match_parent 和 wrap_content。
基本上我的目标是与 GMail 界面类似的布局。
附带说明一下,lbl_date 和 lbl_mileage 需要优先处理,不应被截断或隐藏。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="4dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:orientation="horizontal">
<TextView
android:id="@+id/lbl_title"
android:layout_weight=".9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="4dp"
android:layout_marginStart="10dp"
android:text="Title"
android:textSize="16sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/lbl_date"
android:layout_weight=".1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:gravity="right"
android:text="Date"
android:textStyle="bold"
android:textSize="12sp"
android:textColor="@color/blue_dark"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/lbl_details"
android:layout_weight=".9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="4dp"
android:layout_marginStart="10dp"
android:text="Details"
android:scrollHorizontally="true"
android:ellipsize="end"
android:maxLines="2"
android:textColor="@color/grey"/>
<TextView
android:id="@+id/lbl_mileage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:gravity="right"
android:text="0.0"
android:textColor="@color/blue_dark"/>
</LinearLayout>
</LinearLayout>
在 Android Studio 中预览
在模拟器/设备中查看
当您使用 LinearLayout 和属性 layout_weight 时,如果 orientation是水平,layout_width应该设置为0dp,如果方向是vertical layout_height 应设置为 0dp。
努力改变
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:orientation="horizontal">
<TextView
android:id="@+id/lbl_title"
android:layout_weight=".9"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="4dp"
android:layout_marginStart="10dp"
android:text="Title"
android:textSize="16sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/lbl_date"
android:layout_weight=".1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:maxLines="1"
android:gravity="right"
android:text="Date"
android:textStyle="bold"
android:textSize="12sp"
android:textColor="@color/blue_dark"/>
</LinearLayout>
希望有用。
下面的代码将使您的日期文本保持在右侧。
使用 width=wrapContent 和 weight=0(默认)让你的组件不被权重函数截断或拉伸。
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:orientation="horizontal">
<TextView
android:id="@+id/lbl_title"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginRight="4dp"
android:layout_marginStart="10dp"
android:text="Title"
android:textSize="16sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/lbl_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:text="Date"
android:textStyle="bold"
android:textSize="12sp"
android:textColor="@color/blue_dark"/>
</LinearLayout>