我在RelativeLayout内有PercentRelativeLayout,因为下面的代码显示了
<android.support.percent.PercentRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="10dp">
<RelativeLayout
android:id="@+id/clickBox"
android:layout_height="match_parent"
android:background="@color/PaleBlack"
android:fillViewport="true"
app:layout_widthPercent="35%">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:scaleX="0.8"
android:scaleY="0.8"
android:src="@mipmap/ic_open"/>
</RelativeLayout>
</android.support.percent.PercentRelativeLayout>
但是,如果我以编程方式向PercentRelativeLayout
添加TextView,RelativeLayout
不会展开垂直填充父级PercentRelativeLayout
,结果如下所示
如何解决此问题,以便RelativeLayout
填充父级的高度?
答案 0 :(得分:0)
由于不推荐使用PercentRelativeLayout
,您可以考虑使用如下布局切换到ConstraintLayout
解决方案:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.constraint.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.30" />
<RelativeLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="0dp"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
android:layout_marginTop="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.495"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/guideline"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="false"
android:layout_centerInParent="true"
android:adjustViewBounds="false"
app:srcCompat="@mipmap/ic_launcher" />
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
您可以添加第二条指南,并将正在生成的TextView
锚定到指南和父级,就像我对RelativeLayout
所做的那样。