0

需要一些帮助来解决 android 中的 UI 问题。我正在尝试创建一个活动,其中文​​本视图应该填充右下角和左下角两个按钮上方的所有空间。 布局

我不想硬编码任何高度/宽度参数,但想将它们定义为 %. 所以我希望按钮高度为屏幕高度的 10%,文本视图为屏幕高度的 90%。

因此,我将按钮宽度保持为 Wrap_text,将 textview 宽度保持为 fill_parent。

下面是我现在拥有的xml文件。问题在于定义高度。如何将按钮高度指定为屏幕高度的 10% 和/或文本视图高度为屏幕高度的 90%?

<RelativeLayout 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"
tools:context=".Activityclass" >

<TextView
 android:id="@+id/textView1"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:layout_above="@+id/button1" />

<Button
 android:id="@+id/button1"
 style="?android:attr/buttonStyleSmall"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignParentBottom="true"
 android:layout_alignParentLeft="true"
 android:background="@android:drawable/btn_default"
 android:text="<-prev" />

<Button
 android:id="@+id/button2"
 style="?android:attr/buttonStyleSmall"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignParentBottom="true"
 android:layout_alignParentRight="true"
 android:background="@android:drawable/btn_default"
 android:text="next->" />

任何帮助都将受到欢迎。

4

2 回答 2

1

如果您使用 aLinearLayout那么您可以使用该layout_weight属性来TextView填充可用高度:

<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"
tools:context=".Activityclass" >

<TextView
 android:id="@+id/textView1"
 android:layout_width="fill_parent"
 android:layout_height="0dp"
 android:layout_weight="1" />

<RelativeLayout
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 >

<Button
 android:id="@+id/button1"
 style="?android:attr/buttonStyleSmall"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignParentLeft="true"
 android:background="@android:drawable/btn_default"
 android:text="<-prev" />

<Button
 android:id="@+id/button2"
 style="?android:attr/buttonStyleSmall"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignParentRight="true"
 android:background="@android:drawable/btn_default"
 android:text="next->" />

</RelativeLayout>

</LinearLayout>

当视图具有该layout_weight属性时,系统首先计算没有该属性的视图的尺寸,然后在具有该属性的视图之间划分剩余空间。每个具有布局权重的视图都会获得layout_weight/sum(all layout_weights)剩余空间的一小部分。

于 2013-01-06T12:14:45.583 回答
1

layout_weight您可以指定多个视图之间的大小比例。

例如,您有一个 MapView 和一个应该向地图显示一些附加信息的表格。

地图应占屏幕的 3/4,表格应占屏幕的 1/4

然后将表layout_weightmap to 3和 `layout_weight 设置为 1。

为了让它工作,你还必须设置height or width (depending on your orientation) to 0px.

于 2013-01-06T12:16:02.680 回答