RelativeLayout中高度设置为fill_parent的ImageView实例将像RelativeLayout一样拉伸。例如。如果同一布局中的EditText为10行高,则图像将拉伸至10行高。
如何在FrameLayout中复制此行为?无论FrameLayout中其他项的高度如何,设置为fill_parent的图像高度似乎与wrap_content相同。
我更愿意在XML中完全处理这个问题。
答案 0 :(得分:2)
FrameLayout
将所有子视图叠加在同一区域。根据您的设置,您可以更改视图的显示方式。根据Android的FrameLayout,
框架布局的大小是 最大的孩子的大小(加上 填充),可见或不可见(如果 FrameLayout的父级允许)。
FrameLayout是最简单的类型 布局对象。这基本上是一片空白 您可以在屏幕上留出空间 后来用一个对象填充 - for 例如,您将要交换的图片 然后出去所有儿童元素 FrameLayout固定在左上角 屏幕的一角;你不能 为a指定不同的位置 儿童观。后续子视图 将简单地绘制在以前 一些,部分或完全模糊 他们(除非新的对象是 透明的)。
在您的示例中,无论使用FrameLayout
还是fill_parent
,wrap_content
中的图片都不会被拉伸到其最大兄弟的尺寸。
答案 1 :(得分:2)
我发现了一个(可能是黑客)解决方法 - 在LinearLayout中包装FrameLayout让我将FrameLayout设置为fill_parent,因此它的子节点可以相应地伸展。所以:
<LinearLayout
orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<FrameLayout
android:measureAllChildren="true"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<ImageView
android:src="@drawable/image"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:scaleType="fitXY"
android:layout_gravity="right|center_vertical" />
</FrameLayout>
</LinearLayout>
<RelativeLayout ... >
... other stuff ...
</RelativeLayout>
</LinearLayout>
ImageView将延伸到EditText的高度。