我在Android中很新,所以它可能是一个愚蠢的问题,但它就在这里。
我有一个活动的RelativeLayout。在这个布局中,我在屏幕底部有另一个布局。有时我隐藏它或使它可见,这不重要。是否有可能使另一个布局的高度可以说占总屏幕高度的27%?这个想法是保留其他内容,除了这个布局在屏幕上。
有人试过这样的事吗?
答案 0 :(得分:22)
LinearLayout
可以通过android:layout_weight
处理此问题。例如,这是一个包含三个Button
小部件的布局,分别占高度的50%,30%和20%:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Button
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="50"
android:text="@string/fifty_percent"/>
<Button
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="30"
android:text="@string/thirty_percent"/>
<Button
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="20"
android:text="@string/twenty_percent"/>
</LinearLayout>
但是,您不能简单地声明布局文件中任意点的任意窗口小部件应占据屏幕大小的任意百分比。欢迎您使用Java执行该计算,并根据需要调整窗口小部件LayoutParams
。
答案 1 :(得分:1)
你可以试试这个,更复杂但更实用。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/parent_view"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name" />
<LinearLayout
android:id="@+id/parent_of_bottom_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentBottom="true" >
<LinearLayout
android:id="@+id/content_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="27">
//Add your content here
</LinearLayout>
</LinearLayout>