我的相对布局中有两个视图 - 一个TextView和一个ImageView。这些是我想要的结果:
1)如果隐藏了图像视图(如果满足某些条件,则可以将其设置为可见性=以编程方式消失),文本视图在相对布局中垂直和水平居中对齐
2)如果未隐藏图像视图,则文本视图应水平居中对齐,但垂直占用的空间不得超过其需要 - 图像视图占用所有可用高度。
这是我正在使用的代码。虽然它不起作用,因为如果我将imageview设置为fill_parent它会重叠文本,如果我将它设置为wrap_content则它太小了:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerVertical="true"
android:layout_above="@+id/linearlayout_buttons">
<TextView
android:id="@+id/text_compliance_question"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:textSize="22sp"
android:layout_alignWithParentIfMissing="true"
android:layout_above="@+id/image_thumbnail"
android:gravity="center"
android:textStyle="bold" />
<ImageView
android:visibility="visible"
android:id="@+id/image_thumbnail"
android:layout_marginTop="30dp"
android:layout_marginBottom="30dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:contentDescription="@string/title_activity" />
</RelativeLayout>
任何想法都表示赞赏。
答案 0 :(得分:1)
这是您的布局希望这是您正在寻找的
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_margin="20dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_weight="1"
android:orientation="vertical"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="0dp">
<TextView
android:gravity="center"
android:text="hello there"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<ImageView
android:visibility="gone"
android:layout_weight="1"
android:src="@drawable/ic_launcher"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:text="dynamic button 1"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:text="dynamic button 2"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:text="dynamic button 3"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
<LinearLayout
android:layout_marginTop="20dp"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:text="dynamic button 2"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:layout_weight="1"
android:text="dynamic button 3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
</LinearLayout>
答案 1 :(得分:0)
使用以下布局文件可能会解决您的问题。
<?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="match_parent"
android:orientation="vertical"
android:gravity="center_vertical"
android:weightSum="1" >
<TextView
android:id="@+id/text_compliance_question"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="40dp"
android:layout_gravity="center_horizontal"
android:textSize="22sp"
android:textStyle="bold"
android:text="Hello world!" />
<ImageView
android:id="@+id/image_thumbnail"
android:layout_weight="1"
android:visibility="visible"
android:layout_gravity="center_horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/device_type_windows" />
</LinearLayout>
当图像视图可见/消失时,它看起来像: