我想创建一个类似这样的屏幕,但底部没有白色空间(如果看不到空白区域,请点击图片)。
红色部分应占据高度的40%。黑色布局剩余(60%+(-24dp marginTop))。
另外,我有两个不同的要求:
以下是我的XML:
<?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="100">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="40"
android:background="#f00"
android:orientation="vertical" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_marginEnd="12dp"
android:layout_marginStart="12dp"
android:layout_marginTop="-24dp"
android:layout_weight="60"
android:background="@android:color/black"
android:orientation="vertical" />
</LinearLayout>
我知道这可以通过给出一个固定的高度来解决,但我不想这样做。
答案 0 :(得分:2)
解决方案可以是多个,也许FrameLayout
和ConstraitLayout
很容易。以下是使用组合RelativeLayout
和LinearLayout
的解决方案。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="10">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="4"
android:background="#f00"
android:orientation="vertical" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="10">
<android.support.v4.widget.Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3.8" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_weight="6.2"
android:background="#000000"
android:orientation="vertical" />
</LinearLayout>