我有以下布局结构:
<RelativeLayout>
<ScrollView>
<LinearLayout>
<RelativeLayout>
<LinearLayout android:id="@+id/ContentNo1"> <-- Align top
</LinearLayout>
<LinearLayout android:id="@+id/ContentNo2"> <-- Align bottom
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</ScrollView>
<Button/> <-- Always bottom of the page
</RelativeLayout>
我的按钮在FIRST RelativeLayout中是底部对齐的,而我的ScrollView在其中对齐...
我希望在第二个RelativeLayout内部对齐ContentNo1,并在其中底部对齐ContentNo2 ......
我已经做到了这一点,但是当ContentNo1变得太大时,它会重叠ContentNo2,我希望它只是推送ContentNo2 ......怎么做?
我已经尝试过(在这里的一些主题中有详细介绍),使用layout_below / layout_above,但是当我使用它时,ContentNo2的底部对齐被驳回......
- 编辑 -
正如瓦西所问,这里是图片:(我不能发布超过2个链接,然后我已经做了这个页面来解释它)
http://www.mydonorlife.hol.es/relativeissue/
- 编辑2 - 解决方案 -
这对我有用:我删除了第二个RelativeLayout并在某些视图上设置了一些重量/高度技巧如下&gt;&gt;
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_alignParentTop="true"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- CONTENT NO 1 -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginBottom="30dp">
</LinearLayout>
<!-- /CONTENT NO 1 -->
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_weight="1"
android:layout_height="0dp">
<!-- CONTENT NO 2 -->
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:gravity="bottom"
android:layout_height="match_parent"
android:layout_weight="0">
</LinearLayout>
<!-- /CONTENT NO 2 -->
</LinearLayout>
</LinearLayout>
</ScrollView>
<Button
android:layout_alignParentBottom="true"/>
</RelativeLayout>
希望以后有人帮助......
答案 0 :(得分:1)
我已经更改了一些代码,并尝试根据需要进行布局。
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ScrollView
android:id="@+id/scrollview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_alignParentTop="true"
android:fillViewport="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- CONTENT NO 1 -->
<LinearLayout
android:id="@+id/linerlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginBottom="30dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Top aligned text1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Top aligned text2"/>
</LinearLayout>
<!-- /CONTENT NO 1 -->
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_below="@+id/linerlayout"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="bottom aligned text1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="bottom aligned text2"/>
<!-- CONTENT NO 2 -->
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:gravity="bottom"
android:layout_height="match_parent"
android:layout_weight="0">
</LinearLayout>
<!-- /CONTENT NO 2 -->
</LinearLayout>
</RelativeLayout>
</ScrollView>
<Button
android:layout_alignBottom="@id/scrollview"
android:text="bottom button"
android:layout_alignParentBottom="true"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
/>
</RelativeLayout>
您还可以根据您的要求添加 CONTENT NO 1 和 CONTENT NO 2 用户界面