您好我知道使用RelativeLayout
,我们可以使用layout_toRightOf
,layout_toLeftOf
,layout_above
将视图放在另一个旁边。
但是,我想知道我们如何为它添加一些间距/边距?如果我只是设置边距,它将导致视图根据父视图设置边距。任何想法如何解决这个问题?
答案 0 :(得分:2)
也许将填充设置添加到RelativeLayout可能会有效。
因此,基本上有两种方法可以为视图设置间距。 填充和边距。
请考虑以下代码:
<?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/text1"
android:background="#ff0000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text 1" />
<Button
android:id="@+id/button1"
android:background="#00ff00"
android:layout_toRightOf="@id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 1"/>
</RelativeLayout>
输出:
例如:更改上述代码中的填充设置:
<?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/text1"
android:background="#ff0000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="Text 1" />
<Button
android:id="@+id/button1"
android:background="#00ff00"
android:layout_toRightOf="@id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="20dp"
android:text="Button 1"/>
</RelativeLayout>
输出:
(您是否注意到现在,内容是在距离视图边界20dp之后绘制的)
在上面的代码中添加边距设置(并删除填充):
<?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/text1"
android:background="#ff0000"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:text="Text 1" />
<Button
android:id="@+id/button1"
android:background="#00ff00"
android:layout_toRightOf="@id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:text="Button 1"/>
</RelativeLayout>
<强>输出强>:
正如你所看到的,这一次的视图是在它周围留下20dp的距离后绘制的。
所以两种间距技术,填充和边距,第一种工作在视图的内容和#34;而后者就是&#34;视图本身&#34;。
答案 1 :(得分:1)
不,边距将适用于视图的邻居,而不是父母,例如,如果将layout_marginLeft=20dp
设置为view1,则view1的左侧(假设view2)将与view1具有20dp的边距,而不是父节点所有
答案 2 :(得分:1)
使用填充在视图内设置边距:
android:padding="5dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingBottom="5dp"
android:paddingTop="5dp"