Android百分比布局高度

我知道不可能设定百分比,而且你可以设定某些图像的重量来调整它们的高度。 我想要做的是指定一个布局相对于它所在布局的高度。 基本上我有这样的事情

<LinearLayout android:layout_height="fill_parent"> <LinearLayout> </LinearLayout> </LinearLayout> 

当然这是一个非常简化的版本,只是这样你才能理解我的胡言乱语。 基本上我想设置内部线性布局大约是主线性布局的50%。

做这个的最好方式是什么?

您可以在其下添加另一个空白布局,并将它们设置为具有相同的布局权重。 他们应该得到每个空间的50%。

有一个属性叫做android:weightSum。

你可以在内部的linear_layout中设置android:weightSum =“2”,在linear_layout中设置android:weight =“1”。

请记住将内部的linear_layout设置为fill_parent,这样weight属性可以按预期工作。

顺便说一句,我不认为它需要添加第二个观点,尽pipe我没有尝试过。 🙂

 <LinearLayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:weightSum="2"> <LinearLayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:layout_weight="1"> </LinearLayout> </LinearLayout> 

正如你所说,我会推荐重量。 百分比将是非常有用的(不知道为什么他们不支持),但你可以做到这一点的方式是这样的:

 <LinearLayout android:layout_height="fill_parent" android:layout_width="fill_parent" > <LinearLayout android:layout_height="0dp" android:layout_width="fill_parent" android:layout_weight="1" > </LinearLayout> <View android:layout_height="0dp" android:layout_width="fill_parent" android:layout_weight="1" /> </LinearLayout> 

外卖是你有一个空的观点,将占用剩余的空间。 不理想,但它做你正在寻找。

android:layout_weight =“。YOURVALUE”是实现百分比的最佳方式

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/logTextBox" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight=".20" android:maxLines="500" android:scrollbars="vertical" android:singleLine="false" android:text="@string/logText" > </TextView> </LinearLayout> 

随着ContraintLayout的引入,可以使用指南来实现:

 <?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" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.eugene.test1.MainActivity"> <TextView android:id="@+id/textView" android:layout_width="0dp" android:layout_height="0dp" android:background="#AAA" android:text="TextView" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintBottom_toTopOf="@+id/guideline" /> <android.support.constraint.Guideline android:id="@+id/guideline" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" app:layout_constraintGuide_percent="0.5" /> </android.support.constraint.ConstraintLayout> 

结果视图

您可以在这篇文章中阅读更多使用ConstraintLayout构build接口 。