我创建了一个简单的LinearLayout
,其中包含三个相同的元素:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Hello"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Hello"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Hello"/>
</LinearLayout>
现在我要在每对元素之间引入8dp
空格。
以下哪种解决方案被认为更清洁?
或者可能是其他人?
答案 0 :(得分:4)
试试这个。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Hello" />
<android.support.v4.widget.Space
android:layout_width="8dp"
android:layout_height="wrap_content" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Hello" />
<android.support.v4.widget.Space
android:layout_width="8dp"
android:layout_height="wrap_content" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Hello" />
</LinearLayout>
为代码添加空间。
<android.support.v4.widget.Space
android:layout_width="8dp"
android:layout_height="wrap_content" />
答案 1 :(得分:1)
我喜欢已发布的Space
解决方案,但我想在原始问题的精神中添加另一个答案。
在OP出现的情况下,如果我使用边距来完成此操作,我会在除第一个之外的每个元素上使用开始/左边距。我会这样做是因为我预测布局可能会在未来发生变化。在我看来,最可能发生的事情是在LinearLayout
的末尾添加新元素或从LinearLayout
的末尾删除元素。在这些情况下,如果我在每个项目上使用开始/左边距,我可以删除单个视图而无需触及其他视图。
答案 2 :(得分:0)
无论是给定的解决方案,您还可以使用LinearLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:showDividers="middle"
android:divider="@drawable/divider8p"
android:orientation="vertical">
<!-- Your items here -->
</LinearLayout>
和分隔符声明:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#00FFFFFF"/>
<size android:width="8dp" android:height="8dp"/>
</shape>