如何创建一个始终存在EditText
且遵守以下三个规则的布局:
EditText
观点:
- 如果不存在图像,则填充整个父级(在运行时,在这种情况下,可见性将设置为
View.GONE
。) - 如果图像的高度大于宽度,则填充父高度的 50%。
- 如果图像宽于高,则填充父级的其余部分。
当然,图像会被拉伸以适应父矩形最底部的 50%,同时保持纵横比。
如何创建一个始终存在EditText
且遵守以下三个规则的布局:
EditText
观点:
View.GONE
。)当然,图像会被拉伸以适应父矩形最底部的 50%,同时保持纵横比。
我不相信这可以通过单个 xml 布局来完成,但简单的方法是简单地拥有多个 xml 布局文件,您可以根据图像的存在和纵横比来扩充这些文件。
尝试这个:
<LinearLayout 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:orientation="vertical" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="10" >
</EditText>
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:src="@drawable/ic_launcher"/>
</LinearLayout>
这就是我的做法。生成的布局如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="blah" />
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:visibility="gone"
android:src="@drawable/photo1" />
</LinearLayout>