在 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);
}
}
我有一个 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);
}
}