列表项 - 布局崩溃,对象重叠
List item - layout crash, objects overlap
我正在尝试实现列表项的简单布局。 Android工作室的设计图正是我想要的
但是,在运行时,这就是我在每个显示器上所拥有的。
注意最后的TextView
(@+id/messages_listview_item_modified_date
),一般是看不到的;它仅在运行时的特定条件下变得可见。老实说,不确定它是否相关。
这是xml布局文件
<?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:weightSum="1"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/messages_listview_heading"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/messages_listview_item_user_nick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/messages_listview_item_user_icon"
android:text="@string/messages_listview_item_nickname"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="#ff99cc00"
/>
<TextView
android:id="@+id/messages_listview_item_message_title"
android:text="@string/messages_listview_item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#acacac"
android:textStyle="bold"
android:gravity="start"
android:textAppearance="?android:attr/textAppearanceListItem"
android:layout_below="@+id/messages_listview_item_user_nick"
android:layout_toEndOf="@+id/messages_listview_item_user_icon">
</TextView>
<TextView
android:id="@+id/messages_listview_item_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:text="@string/messages_listview_item_created_date"
android:textAppearance="?android:attr/textAppearanceListItemSmall"/>
<ImageView
android:id="@+id/messages_listview_item_user_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:contentDescription="@string/messages_listview_item_user_icon"
android:src="@drawable/icon_user_messages"/>
</RelativeLayout>
<TextView
android:id="@+id/messages_listview_item_message_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="start"
android:text="@string/messages_listview_item_body"
android:textColor="#acacac"
android:textAppearance="?android:attr/textAppearanceListItem"
android:textSize="16sp">
</TextView>
<TextView
android:id="@+id/messages_listview_item_modified_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:text="@string/messages_listview_item_edited_date"
android:layout_gravity="right"
android:textSize="12sp"
android:textStyle="italic"/>
</LinearLayout>
线性布局无用
你可以用这个
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/messages_listview_item_user_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/messages_listview_item_user_nick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/messages_listview_item_date"
android:layout_toRightOf="@+id/messages_listview_item_user_icon"
android:text="nickname"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="#ff99cc00" />
<TextView
android:id="@+id/messages_listview_item_message_title"
android:text="title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#acacac"
android:textStyle="bold"
android:gravity="start"
android:textAppearance="?android:attr/textAppearanceListItem"
android:layout_alignBottom="@+id/messages_listview_item_user_icon"
android:layout_toRightOf="@+id/messages_listview_item_user_icon"></TextView>
<TextView
android:id="@+id/messages_listview_item_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="createddate"
android:textAppearance="?android:attr/textAppearanceListItemSmall" />
<TextView
android:id="@+id/messages_listview_item_message_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/messages_listview_item_user_icon"
android:text="body"
android:textColor="#acacac"
android:layout_toLeftOf="@+id/messages_listview_item_modified_date"
android:textAppearance="?android:attr/textAppearanceListItem"
android:textSize="16sp"></TextView>
<TextView
android:id="@+id/messages_listview_item_modified_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:text="editdate"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:textSize="12sp"
android:textStyle="italic" />
</RelativeLayout>
我从图1中推测正是你想要显示的
问题可能来自您真实设备上的较低 API。
为防止这种情况,请尝试添加以下内容:
+在android:id="@+id/messages_listview_item_user_nick"
中添加android:layout_toRightOf="@+id/messages_listview_item_user_icon"
+在android:id="@+id/messages_listview_item_message_title"
中添加
android:layout_toRightOf="@+id/messages_listview_item_user_icon"
+在android:id="@+id/messages_listview_item_date"
中添加
android:layout_alignParentRight="true"
+在android:id="@+id/messages_listview_item_user_icon"
中添加android:layout_alignParentLeft="true"
我正在尝试实现列表项的简单布局。 Android工作室的设计图正是我想要的
但是,在运行时,这就是我在每个显示器上所拥有的。
注意最后的TextView
(@+id/messages_listview_item_modified_date
),一般是看不到的;它仅在运行时的特定条件下变得可见。老实说,不确定它是否相关。
这是xml布局文件
<?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:weightSum="1"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/messages_listview_heading"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/messages_listview_item_user_nick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/messages_listview_item_user_icon"
android:text="@string/messages_listview_item_nickname"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="#ff99cc00"
/>
<TextView
android:id="@+id/messages_listview_item_message_title"
android:text="@string/messages_listview_item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#acacac"
android:textStyle="bold"
android:gravity="start"
android:textAppearance="?android:attr/textAppearanceListItem"
android:layout_below="@+id/messages_listview_item_user_nick"
android:layout_toEndOf="@+id/messages_listview_item_user_icon">
</TextView>
<TextView
android:id="@+id/messages_listview_item_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:text="@string/messages_listview_item_created_date"
android:textAppearance="?android:attr/textAppearanceListItemSmall"/>
<ImageView
android:id="@+id/messages_listview_item_user_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:contentDescription="@string/messages_listview_item_user_icon"
android:src="@drawable/icon_user_messages"/>
</RelativeLayout>
<TextView
android:id="@+id/messages_listview_item_message_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="start"
android:text="@string/messages_listview_item_body"
android:textColor="#acacac"
android:textAppearance="?android:attr/textAppearanceListItem"
android:textSize="16sp">
</TextView>
<TextView
android:id="@+id/messages_listview_item_modified_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:text="@string/messages_listview_item_edited_date"
android:layout_gravity="right"
android:textSize="12sp"
android:textStyle="italic"/>
</LinearLayout>
线性布局无用
你可以用这个
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/messages_listview_item_user_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/messages_listview_item_user_nick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/messages_listview_item_date"
android:layout_toRightOf="@+id/messages_listview_item_user_icon"
android:text="nickname"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="#ff99cc00" />
<TextView
android:id="@+id/messages_listview_item_message_title"
android:text="title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#acacac"
android:textStyle="bold"
android:gravity="start"
android:textAppearance="?android:attr/textAppearanceListItem"
android:layout_alignBottom="@+id/messages_listview_item_user_icon"
android:layout_toRightOf="@+id/messages_listview_item_user_icon"></TextView>
<TextView
android:id="@+id/messages_listview_item_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="createddate"
android:textAppearance="?android:attr/textAppearanceListItemSmall" />
<TextView
android:id="@+id/messages_listview_item_message_body"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/messages_listview_item_user_icon"
android:text="body"
android:textColor="#acacac"
android:layout_toLeftOf="@+id/messages_listview_item_modified_date"
android:textAppearance="?android:attr/textAppearanceListItem"
android:textSize="16sp"></TextView>
<TextView
android:id="@+id/messages_listview_item_modified_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:text="editdate"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:textSize="12sp"
android:textStyle="italic" />
</RelativeLayout>
我从图1中推测正是你想要显示的
问题可能来自您真实设备上的较低 API。 为防止这种情况,请尝试添加以下内容:
+在android:id="@+id/messages_listview_item_user_nick"
中添加android:layout_toRightOf="@+id/messages_listview_item_user_icon"
+在android:id="@+id/messages_listview_item_message_title"
中添加
android:layout_toRightOf="@+id/messages_listview_item_user_icon"
+在android:id="@+id/messages_listview_item_date"
中添加
android:layout_alignParentRight="true"
+在android:id="@+id/messages_listview_item_user_icon"
中添加android:layout_alignParentLeft="true"