【问题标题】:How to align two views in Android?如何在Android中对齐两个视图?
【发布时间】:2020-07-15 08:09:04
【问题描述】:

我在线性布局中有两个视图。一种视图是TextView,另一种是EditText。我想对齐他们两个。这是截图和代码。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="80dp"
    android:background="#ccc"
    android:orientation="horizontal"
    android:layout_weight="1">

    <TextView
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:text="S1"
        android:background="#110faa">

    </TextView>

    <EditText
        android:layout_width="80dp"
        android:layout_height="20dp"
        android:background="#102df2"
        android:inputType="numberDecimal"
        android:importantForAutofill="no">

    </EditText>

</LinearLayout>

这就是它现在的样子,我不希望 S1 文本视图上的顶部间距。

截图如下:

【问题讨论】:

  • android:baselineAligned="false" 添加到开头的&lt;LinearLayout&gt; 标记中。
  • 您应该使用约束布局,它的性能要好得多...如果您的布局变得复杂,线性布局将很难维护
  • ConstraintLayout 的性能肯定LinearLayout 更高。请停止为所有内容建议ConstraintLayout。这并不意味着在每种情况下都替换每个ViewGroup
  • 感谢 Mike M。您的回答很有用。 :)

标签: android android-layout android-activity


【解决方案1】:

使用android:layout_weight分割LinearLayout的宽度和 android:baselineAligned="false" 顶部间距

 <LinearLayout android:layout_width="match_parent"
        android:layout_height="80dp"
        android:background="#ccc"
        android:orientation="horizontal"
        android:layout_weight="5"
        android:baselineAligned="false">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="20dp"
            android:layout_weight="1"
            android:background="#110faa"
            android:text="S1">
    
        </TextView>
    
        <EditText
            android:layout_width="wrap_content"
            android:layout_height="20dp"
            android:layout_weight="4"
            android:background="#102df2"
            android:importantForAutofill="no"
            android:inputType="numberDecimal"></EditText>
    
    </LinearLayout>

【讨论】:

【解决方案2】:

你可以这样做:

      <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="80dp"
             android:background="#ccc"
             android:orientation="horizontal"
             android:gravity="center_vertical">

        <TextView
             android:layout_width="wrap_content"
             android:layout_height="match_parent"
             android:gravity="center"
             android:text="S1"
             android:background="#110faa">
        </TextView>

        <EditText
              android:layout_width="wrap_content"
              android:layout_height="match_parent"
              android:gravity="center_vertical"
              android:background="#102df2"
              android:inputType="numberDecimal"
              android:importantForAutofill="no"/>

       </LinearLayout>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多