为布局添加空格

时间:2011-06-15 01:50:58

标签: android xml

我想在android中制作空行。这就是我一直在做的事情:

android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="\n\n"

我想知道是否有更好的方法?感谢

14 个答案:

答案 0 :(得分:148)

使用SpaceView添加特定数量的空间。对于30个垂直密度像素:

<Space
  android:layout_width="1dp"
  android:layout_height="30dp"/>

如果您需要灵活的空间填充,请在View中的项目之间使用LinearLayout

<View
  android:layout_width="1dp"
  android:layout_height="match_parent"
  android:layout_weight="1"/>

<View
  android:layout_width="1dp"
  android:layout_height="0dp"
  android:layout_weight="1"/>

这适用于API 14和API的大多数布局。之后,除了小部件(改为使用FrameLayout)。

[2014年9月更新以使用Space。帽子提示@Sean]

答案 1 :(得分:26)

如果您不需要间隙恰好为2行高,则可以添加如下的空视图:

    <View
        android:layout_width="fill_parent"
        android:layout_height="30dp">
    </View>

答案 2 :(得分:13)

更新后的答案:自API 14起,您可以使用&#34; Space&#34;查看as described in the documentation

  

Space是一个轻量级的View子类,可用于在通用布局中创建组件之间的间隙。

答案 3 :(得分:8)

View 如果您需要更改背景颜色, Space ,如果没有。

该剂量意味着您必须更改视图背景。

<Space
        android:layout_width="match_parent"
        android:layout_height="20dp"
         />

或空间

  <h:panelGroup id="panel">
       <h:form>
        <h:commandButton value="Submit" rendered="#{not testAction.flag}">
                <f:ajax render=":panel" listener="#{testAction.submit()}"/>
            </h:commandButton>
        </h:form>
      <h:panelGroup id="panel">

        <h:form id="secondForm" rendered="#{testAction.flag}">
            <h:selectBooleanCheckbox id="checkBox" value="#{testAction.boolVal}">
                <f:validator validatorId="checkboxValidator"/>
            </h:selectBooleanCheckbox>
            <h:commandButton value="Go" action="#{testAction.go()}"/>

        </h:form>
     </h:panelGroup>

答案 4 :(得分:4)

如果你想在布局之间给出空间。这是使用空间的方式。如果你删除边距它将不会出现。在空间内使用文本出现不是一个好方法。 希望有所帮助。

<Space
        android:layout_width="match_content"
        android:layout_height="wrap_content"
        android:layout_margin="2sp" />

答案 5 :(得分:3)

<View
    android:layout_width="fill_parent"
    android:layout_height="30dp"
    android:background="#80000000">
</View>

答案 6 :(得分:2)

试试这个

layout.xml中的

<TextView
        android:id="@+id/xxx"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="@string/empty_spaces" />

在strings.xml中:

<string name="empty_spaces">\t\t</string>

它对我有用

答案 7 :(得分:2)

我强烈不同意CaspNZ的做法。

首先,将测量这个不可见的视图,因为它是“fill_parent”。 Android会尝试计算它的正确宽度。相反,这里建议使用一个小的常数(1dp)。

其次,View应该被一个更简单的类Space替换,这是一个专门用于在UI组件之间创建空白空间的类,以获得最快的速度。

答案 8 :(得分:1)

这可以通过空格视图来实现。

空间是轻量级但不太灵活。

查看占据屏幕上的矩形区域,负责绘图和事件处理。视图更加可自定义,您可以添加背景,绘制空间等形状。

实施空间:

(例如:20个垂直和10个水平密度像素的空间)

<Space
  android:layout_width="10dp"
  android:layout_height="20dp"/>

实施观点

(例如:查看20个垂直和10个水平密度像素,包括背景颜色)

  <View
       android:layout_width="10dp"
       android:layout_height="20dp"
       android:background="@color/bg_color"/>

使用HTML实体进行字符串格式化的空间:

&#160;表示不可破解的空格。 &#032;为常规空间。

答案 9 :(得分:0)

同意所有答案......也是,

    <TextView android:text=""
              android:layout_width="match_parent"
              android:layout_height="30dp"
              android:layout_weight="2" />

应该工作:)我只是搞乱别人,因为TextView是我最喜欢的(虽然浪费了内存!)

答案 10 :(得分:0)

以前的答案在我的案例中不起作用。但是,在菜单中创建一个空项目。

<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">
  ...
  <item />
  ...
</menu>

答案 11 :(得分:0)

有一种更好的方法可以做到这一点 只需使用下面的代码,并根据您想要的空白区域大小进行更改

     <Space
            android:layout_width="wrap_content"
            android:layout_height="32dp"
            android:layout_column="0"
            android:layout_row="10" />

如果您使用网格布局,则仅使用

 android:layout_row="10" />

答案 12 :(得分:0)

以下是使用线条大小创建空白行的简单方法。 在这里我们可以调整空白行的大小。 试试这个。

           <TextView
            android:id="@id/textView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="5dp"/>

答案 13 :(得分:0)

只需将weightSum标签添加到linearlayout到1,并为它下面的相应视图赋予layout_weight为.9,它将在视图之间创建一个空间。您可以尝试这些值以获得适合您的值