【问题标题】:Android: Setting up a form in XMLAndroid:在 XML 中设置表单
【发布时间】:2015-10-17 21:29:09
【问题描述】:

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

这是我的活动类的 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>

【问题讨论】:

    标签: android xml layout android-linearlayout


    【解决方案1】:

    将您的布局 android:orientation="horizo​​ntal" 更改为 android:orientation="vertical",它会起作用。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        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>
        

        或自定义方式:

        drawable/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);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-02
          • 1970-01-01
          • 2021-11-13
          • 2017-08-25
          • 2013-01-11
          相关资源
          最近更新 更多