基于下图,我对布局问题很生气
图像代表RelativeLayout。我需要将蓝色视图与黑色视图的底部对齐。但是,如果黑色视图比红色视图和蓝色视图的总和短,我需要蓝色视图低于红色视图。我想得到这个结果:
我尝试使用以下xml:
<RelativeLayout
android:id="@+id/container"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<View
android:id="@+id/blackView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:align_parentTop="true"
android:align_parentLeft="true"/>
<View
android:id="@+id/redView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:align_parentTop="true"
android:align_parentRight="true"
android:layout_toRightOf="@+id/blackView"/>
<View
android:id="@+id/blueView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/blackView"
android:layout_below="@+id/redView"
android:layout_alignParentRight="true"/>
</RelativeLayout>
但似乎layout_alignBottom的优先级高于layout_below。
我还尝试将blueView设置为与其父级的底部对齐,但结果是父级(具有wrap_content
高度)变为高级作为其父级(整个屏幕高度)。
有没有人遇到同样的问题?
答案 0 :(得分:6)
使用此功能。
<?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" >
<LinearLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<View
android:id="@+id/blackView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:background="#000000" />
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.5" >
<View
android:id="@+id/redView"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_alignParentTop="true"
android:background="#FF0000" />
<View
android:id="@+id/blueView"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_alignParentBottom="true"
android:background="#003CFF" />
</RelativeLayout>
</LinearLayout>
</LinearLayout>
答案 1 :(得分:1)
试试这个..
<LinearLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="200dp" >
<View
android:id="@+id/blackView"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.4"
android:background="#000000" />
<RelativeLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.6" >
<View
android:id="@+id/redView"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:background="#FF0000" />
<View
android:id="@+id/blueView"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_alignParentBottom="true"
android:background="#003CFF" />
</RelativeLayout>
</LinearLayout>
答案 2 :(得分:1)
解决!
<LinearLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="100dp"
android:orientation="horizontal" >
<View
android:id="@+id/blackView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<View
android:id="@+id/redView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom|right" >
<View
android:id="@+id/blueView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
诀窍是android:gravity="bottom|right"
。谢谢你的帮助!
答案 3 :(得分:0)
我可以使用零尺寸视图来标记位置来解决它:
ShowAlertAsyc("title","message",...).ContinueWith(t=>
{
//t.Result contains the return value
}, TaskScheduler.FromCurrentSynchronizationContext());
答案 4 :(得分:0)
相对布局:
只需添加 android:layout_alignParentBottom =&#34; true&#34;
不需要 android:layout_below =&#34; @ + id / txtTitle&#34;这个底部视图的属性。