我正在尝试充气并显示具有特定高度的LinearLayout但在显示时,高度始终会转换为wrap_content。我的布局是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="@dimen/dialog_title_height"
android:padding="@dimen/default_padding">
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:text="Scan for devices" />
<ProgressBar
android:id="@+id/progressBarScanning"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
</LinearLayout>
首先接缝很好但是当我将ProgressBar
可见性设置为View.GONE
时,布局高度会缩小到TextView的大小,该大小远小于layout_height
上的wrap_content
。父布局。
但是,如果我将视图包装在具有指定高度的第二个LinearLayout中并将父级设置为<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/default_padding">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dialog_title_height">
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:text="Scan for devices" />
<ProgressBar
android:id="@+id/progressBarScanning"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
</LinearLayout>
</LinearLayout>
,那么它可以正常工作。像这样:
LinearLayout
但是现在AndroidStudio当然抱怨第二个Attribute
没用了。
这样做的正确方法是什么?
答案 0 :(得分:0)
您可以为特定对象设置权重,而不是线性布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/default_padding">
<TextView
android:layout_width="0dp"
android:layout_height="@dimen/dialog_title_height"
android:gravity="center_vertical"
android:text="Scan for devices" />
<ProgressBar
android:id="@+id/progressBarScanning"
android:layout_width="wrap_content"
android:layout_height="@dimen/dialog_title_height" />
</LinearLayout>
希望它能奏效。