在 RelativeLayout 中重叠

Overlapping in RelativeLayout

我有一个 RelativeLayout,其中包含 2 个线性布局,一个应始终与底部对齐(用于注销目的。)另一个从顶部开始并包含 2 个视图存根。这两个 viewstub 有不同的高度,同时只能看到其中一个。

我的问题是如果我让顶部线性布局对齐顶部和底部线性布局对齐底部,如果 viewstubs 高度更大,内容会重叠。

我无法将它们设置在任何上方和下方,就好像 viewstubs 高度较小一样,视图不是从角落开始的。

如何避免它们重叠?

使用 3 个 LinearLayouts 设置居中布局,正如您所做的那样 above/below 并将该居中布局添加到滚动视图中 之后你的问题仍然没有解决,所以请告诉我 :) 编码愉快。

你没有说两个子视图的位置。所以,我的意思是每个视图都有 = 1/2 屏幕。试试我的解决方案吧。

abc.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="10">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="8"
        android:orientation="horizontal"
        android:weightSum="2"
        android:background="#116611">

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:background="#116611"
            android:layout_weight="1">
            <ScrollView
                android:id="@+id/scrollView1"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
                <LinearLayout
                    android:id="@+id/ll_insideScroll1"
                    android:orientation="vertical"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                </LinearLayout>
            </ScrollView>
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:background="#118811"
            android:layout_weight="1">
            <ScrollView
                android:id="@+id/scrollView2"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

            </ScrollView>
        </LinearLayout>
    </LinearLayout>
    <!--Bottom LinearLayout-->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:background="#113311"
        android:layout_weight="2">

    </LinearLayout>

</LinearLayout>

并测试此布局:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.abc);
        LinearLayout ll_insideScroll1 = (LinearLayout)findViewById(R.id.ll_insideScroll1);
        for(int i = 0; i < 50;i++){
            TextView v = new TextView(this);
            v.setText("TextView "+i);
            ll_insideScroll1.addView(v,i);
        }
    }