我在View
添加了RelativeLayout
,并设置了300dp边距
然后我添加了另一个视图,但第二个视图不受第一个视图边缘的影响。为什么?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_marginLeft="300dp"
android:background="@color/colorPrimaryDark"
android:text="use margin left view 1"
android:textSize="40sp" />
<TextView
android:layout_width="290dp"
android:layout_height="200dp"
android:background="@color/colorPrimaryDark"
android:text="not affected by margin view 2 "
android:textSize="40sp" />
</RelativeLayout>
结果:
答案 0 :(得分:0)
这是因为您已将它们放在RelativeLayout
中,您需要将子视图相对于彼此锚定。
因此,在这种情况下,您必须将属性android:layout_toRightOf=´="@+id/text"
添加到第二个TextView
。
整个布局如下所示:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text1"
android:layout_width="200dp"
android:layout_height="200dp"
android:text="Some text"
android:layout_marginLeft="300dp"
android:textSize="40sp"
android:background="@color/colorPrimaryDark"/>
<TextView
android:id="@+id/text2"
android:layout_toRightOf=="@+id/text1"
android:layout_width="290dp"
android:layout_height="200dp"
android:text="Some other text"
android:textSize="40sp"
android:background="@color/colorPrimaryDark"/>
</RelativeLayout>
您可以在此处详细了解RelativeLayout https://developer.android.com/guide/topics/ui/layout/relative.html
答案 1 :(得分:0)
这是因为您只将TextView
应用于第一个marginLeft
,而不是两者都适用。如果您要将TextViews
同时应用于LinearLayout
,则可以使用LinearLayout
将其marginLeft
包围,然后将TextViews
marginLeft
设为300dp或您可以同时为TextViews
LinearLayout
提供300dp
以下是将<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
//Other stuff here
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="300dp">
<TextView
android:layout_width="200dp"
android:layout_height="200dp"
android:text="use margin left view 1"
android:id="@+id/text"
android:textSize="40sp"
android:background="@color/colorPrimaryDark"/>
<TextView
android:layout_width="290dp"
android:layout_height="200dp"
android:text="not affected by margin view 2 "
android:textSize="40sp"
android:background="@color/colorPrimaryDark"/>
</LinearLayout>
//Other stuff here
</RelativeLayout>
包裹在RelativeLayout
中的代码:
alignLeft
您也可以使用<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/text"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_marginLeft="300dp"
android:text="use margin left view 1"
android:textSize="40sp"
android:background="@color/colorPrimaryDark"/>
<TextView
android:layout_width="290dp"
android:layout_height="200dp"
android:layout_alignLeft="@id/text"
android:text="not affected by margin view 2 "
android:textSize="40sp"
android:background="@color/colorPrimaryDark"/>
</RelativeLayout>
的属性来获得相同的结果,例如RelativeLayout
。
以下是代码:
1 to 30000.toStream.combinations(2).size
可以在此处找到要试用的其他r = list(range(1,30000))
z = itertools.combinations(r, 2)
%time sum(1 for _ in z)
属性:https://developer.android.com/reference/android/widget/RelativeLayout.html
以下是一些正在使用的示例: https://developer.android.com/guide/topics/ui/layout/relative.html
答案 2 :(得分:0)
RelativeLayout
是容器。它不会自动将布局参数从一个子项传递到另一个子项。
要使RelativeLayout
中的所有子项具有相同的左边距,我建议将边距添加到RelativeLayout
本身而不是TextView
所以你的代码是:
<RelativeLayout
android:layout_width="match_parent"
android:layout_marginLeft="300dp"
android:layout_height="match_parent">
<TextView
android:id="@+id/text1"
android:layout_width="200dp"
android:layout_height="200p"
android:text="text 1"
android:background="@color/colorPrimaryDark"/>
<TextView
android:layout_width="290dp"
android:layout_height="200dp"
android:text="text 2"
android:background="@color/colorPrimaryDark"/>
</RelativeLayout>
答案 3 :(得分:0)
在这种情况下最好使用LinearLayout。别忘了提及方向:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_marginLeft="300dp"
android:background="@color/colorPrimaryDark"
android:text="use margin left view 1"
android:textSize="40sp" />
<TextView
android:layout_width="290dp"
android:layout_height="200dp"
android:background="@color/colorPrimaryDark"
android:text="affected by margin view 2 "
android:textSize="40sp" />
</LinearLayout>