我知道这一定是一个简单的问题......我只是不知道如何解决它。
所以(只是一个例子),
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical">
<Button android:id="@+id/fakeButton"
android:layout_height="match_parent"
android:layout_width="match_parent"/>
<Button android:id="@+id/saveSearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/saveSearch"/>
</LinearLayout>
这不起作用 - 第一个按钮会使第二个不可见。权重将使它成为一个百分比游戏,这不是我想要的。
我厚吗?
编辑:我不知道,但看起来顺序很重要(来自答案)。加载布局是迭代的而不是整体的。您可以将第一个元素设置为固定高度,其余元素将填充剩余的元素。但我需要的是使最终元素成为固定的高度。
答案 0 :(得分:11)
您可以完全使用layout_weight:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical">
<Button android:id="@+id/fakeButton"
android:layout_height="1"
android:layout_width="match_parent"
android:layout_weight="1.0" />
<Button android:id="@+id/saveSearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/saveSearch"/>
</LinearLayout>
有了这个,你就会让底部按钮具有基本高度,而fakeButton会占用所有剩余的空间。
layout_height控制如何在不同视图之间拆分剩余空间。默认值为0(不占用任何额外空间)。如果你把两个按钮放在相同的高度和1.0的重量,那么每个按钮将占用50%的空间。
答案 1 :(得分:2)
我想你想让fakeButton
填补剩下的空间,对吧?您可以使用android:layout_weight
执行此操作。这是一个例子:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical">
<Button android:id="@+id/fakeButton"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="1"/>
<Button android:id="@+id/saveSearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/saveSearch"/>
</LinearLayout>
答案 2 :(得分:2)
另一种非常简单的解决方案。只需使用FrameLayout和margin属性:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button android:id="@+id/fakeButton"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:text="Fake button"
android:layout_marginBottom="50dip" />
<Button android:id="@+id/saveSearch"
android:layout_gravity="bottom"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:text="Save search"/>
</FrameLayout>
答案 3 :(得分:0)
我觉得它对你有所帮助..
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="center"
android:background="@drawable/bg"
>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="60dip"
android:text="button"
/>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="1"
android:layout_below="@+id/button"
android:text="button1"
/>
</RelativeLayout>
答案 4 :(得分:-1)
应该是另一种方式..
首先你应该有固定元素,然后是match_parent或fill_parent