Android:使用XML设置表单

时间:2015-10-17 21:29:10

标签: android xml layout android-linearlayout

我在使用与活动类关联的LinearLayout设置表单时遇到了一些麻烦。我的所有EditText和TextView都在屏幕顶部的一行中组合在一起。如何在每个项目之间设置换行符?

以下是我的活动类的XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_detail"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <EditText
        android:id="@+id/detailEditText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:singleLine="true" />
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/dateLabel"
        android:textStyle="bold"
        android:padding="10dp"
        android:textSize="20sp"
        android:gravity="top|left"
        android:textIsSelectable="false" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/timeLabel"
        android:textStyle="bold"
        android:padding="10dp"
        android:textSize="20sp"
        android:gravity="top|right"
        android:textIsSelectable="false" />

    <Spinner
        android:id="@+id/PrioritySelect"
        android:layout_height="wrap_content"
        android:prompt="@string/priority"
        android:layout_width="fill_parent"
        android:entries="@array/prioritylist">
    </Spinner>
</LinearLayout>

</LinearLayout>

3 个答案:

答案 0 :(得分:1)

将你的布局android:orientation =“horizo​​ntal”改为android:orientation =“vertical”,它会起作用。

答案 1 :(得分:0)

我首先想到的是 - 将LinearLayout的方向设置为垂直。如果你仍然想要一个与当前布局分类的分隔符,你可以在每个视图之间使用像这样宽度为1dp的按钮 -

<Button
    android:background="#000"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_width="1dp"
    android:layout_height="30dp" />

答案 2 :(得分:0)

在LinearLayout中,每个项目之间都有一个默认样式用于显示换行符。 (API 11 +)

如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    style="?android:buttonBarStyle">
  <TextView style="?android:buttonBarButtonStyle"
    ... />
  <TextView style="?android:buttonBarButtonStyle"
    ... />
  <TextView style="?android:buttonBarButtonStyle"
    ... />
</LinearLayout>

或自定义方式:

抽拉/ vertical_divider.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

  <size
    android:width="1dp"
    android:height="@dimen/your_custom_height" />

  <solid android:color="@color/your_custom_color" />

</shape>

布局/ activity_xxx.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:divider="@drawable/vertical_divider"
      or use the system one below
    android:divider="?android:attr/listDivider"
    android:dividerPadding="8dp"
    android:showDividers="middle">
  <TextView ... />
  <TextView ... />
  <TextView ... />
</LinearLayout>

或者您可以在代码中执行此操作:

mLinearLayout.setDividerDrawable(customDividerDrawable);
mLinearLayout.setDividerPadding(customPadding);
mLinearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);