我刚刚开始学习Android,并在实现特殊布局时遇到了问题。我阅读了很多关于布局的内容,并尝试了我想到的一切,但我无法解决它。可能很容易,我非常感谢你的帮助!
我需要一个简单的布局,顶部有一个较大的视图,底部有一个较小的视图。下部视图应具有150dp的恒定大小,上部视图的高度应可变,并填充其余部分。上面的一个是恒定大小没有问题,下面一个是其余的 - 但这不是我需要它的方式......
这是一个简化的截图,它应该是什么样子:
非常感谢!
答案 0 :(得分:0)
你走了:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/rl_layout_one"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/holo_blue_light"
android:layout_above="@+id/rl_layout_two">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"
android:layout_centerInParent="true"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_layout_two"
android:layout_width="match_parent"
android:layout_height="150dp"
android:background="@android:color/darker_gray"
android:padding="15dp"
android:layout_alignParentBottom="true">
</RelativeLayout>
</RelativeLayout>
这符合您的期望。 Howerev,我想指出的是,一般来说,布局高度或宽度都没有指定。这是不好的做法。我建议另一个选项,使用带权重的LinearLayouts,找到下面的代码。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="1">
<RelativeLayout
android:id="@+id/rl_layout_one"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/holo_blue_light"
android:layout_weight="0.4">
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_layout_two"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/darker_gray"
android:padding="15dp"
android:layout_weight="0.6">
</RelativeLayout>
</LinearLayout>
希望这些帮助。
编辑1:
检查第一个解决方案,它缺少layout_above属性,这就是它占用整个屏幕空间并根据整个屏幕空间居中图像的原因。现在,它不会,因为布局一在布局二之上,它将根据布局一中心您的图像。