Android:LinearLayout的高度';t填充ListView项的父项
我有一个ListView,项目是一个RelativeLayout,左边是文本,右边是线性布局中的ImageViewAndroid:LinearLayout的高度';t填充ListView项的父项,android,android-linearlayout,fill-parent,Android,Android Linearlayout,Fill Parent,我有一个ListView,项目是一个RelativeLayout,左边是文本,右边是线性布局中的ImageView 我预计线性布局**(白色背景)**的高度会很高,但事实并非如此。 效果是: 有人能帮忙吗 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+i
我预计线性布局**(白色背景)**的高度会很高,但事实并非如此。
效果是:
有人能帮忙吗
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_list_item"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="vertical" >
<TextView
android:id="@+id/main_list_item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/main_list_item_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/main_list_item_more"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout
android:id="@+id/main_list_item_delete_layout"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="#ffffff"
android:gravity="center"
android:orientation="horizontal" >
<ImageView
android:id="@+id/main_list_item_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/main_list_item_check_margin_lr"
android:layout_marginRight="@dimen/main_list_item_check_margin_lr"
android:contentDescription="@string/none"
android:gravity="center"
android:src="@drawable/ic_ctx_del1" />
</LinearLayout>
</RelativeLayout>
main.xml如下所示,其中包含ListView:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="fill"
android:orientation="vertical" >
<!-- content -->
<LinearLayout
android:id="@+id/center"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="@dimen/main_margin"
android:layout_marginRight="@dimen/main_margin"
android:orientation="vertical"
android:layout_above="@id/adview_ayout">
<ListView
android:id="@+id/main_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</ListView>
</LinearLayout>
<!-- content end -->
<LinearLayout
android:id="@+id/main_layout_pb"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/transparent"
android:gravity="center"
android:orientation="vertical"
android:clickable="true"
android:visibility="gone">
<ProgressBar
android:id="@+id/main_pb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal" >
</ProgressBar>
</LinearLayout>
在这里输入code
我相信这是家长相对年轻人
自己无法处理的事情-它造成了一种恶性循环-家长将高度推迟给孩子(相对年轻人
上的包装内容
),孩子将高度推迟给家长(match_parent
on main_list_item_delete_布局)。
您可以做的是将主列表\项目\删除\布局的顶部锚定到父级,将其底部锚定到另一个保证为底部的视图(左侧的线性布局
,包含三个文本视图):
PS:在您的示例中,如果左侧LinearLayout
上的文本太长,它将溢出并与delete布局重叠-因此在左侧布局中添加了锚定。
PS2:我知道这个解决方案非常适合你的布局。如果你把
RelativeLayout
作为父母,你可能想尝试新的ConstraintLayout
我相信这是父母RelativeLayout
自己无法处理的事情-这会造成一种恶性循环-父母会拖延时间到子级的高度(相对列表
上的包装内容),子级将高度延迟到父级(匹配主列表项(删除)布局上的父级
)。
您可以做的是将主列表\项目\删除\布局的顶部锚定到父级,将其底部锚定到另一个保证为底部的视图(左侧的线性布局
,包含三个文本视图):
PS:在您的示例中,如果左侧LinearLayout
上的文本太长,它将溢出并与delete布局重叠-因此在左侧布局中添加了锚定。
PS2:我知道这个解决方案非常适合您的布局。如果您设置为使用
RelativeLayout
作为父级,您可能需要尝试新的约束layout
将布局\u alignParentTop
和布局\u alignParentBottom
属性添加到线性布局
,并将它们都设置为true
。请显示包含列表视图的布局。什么是线性布局?您真正想要的是什么?使高度填充\u父级如果您想在屏幕上显示一项,请添加main.xml并指定白色背景部分应填充行高。添加布局\u alignParentTop
和布局\u alignParentBottom
属性请显示包含列表视图的布局。什么是LinearLayout?您真正想要的是什么?使高度填充?如果您想在屏幕上显示一个项目,请添加main.xml并指定白色背景部分应填充行高。
<RelativeLayout ...>
<LinearLayout
android:id="@+id/left_layout"
android:layout_toLeftOf="@+id/main_list_item_delete_layout"
android:layout_toStartOf="@+id/main_list_item_delete_layout"
...
>
</LinearLayout>
<LinearLayout
android:id="@+id/main_list_item_delete_layout"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:layout_alignBottom="@id/left_layout"
...>
</LinearLayout>
</RelativeLayout>