【问题标题】:Auto space children of fixed-width LinearLayout固定宽度 LinearLayout 的自动空间子项
【发布时间】:2025-11-23 13:55:01
【问题描述】:

我有一行文字,我用LinearLayout 来表示:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="A"
            tools:ignore="HardcodedText" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="B"
            tools:ignore="HardcodedText" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="C"
            tools:ignore="HardcodedText" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="D"
            tools:ignore="HardcodedText" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="E"
            tools:ignore="HardcodedText" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="F"
            tools:ignore="HardcodedText" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="G"
            tools:ignore="HardcodedText" />
    </LinearLayout>

我希望这些字母在LinearLayout 中等距分布(有点像CSS 中的auto 边距);现在他们只是聚在一起。我怎样才能做到这一点?

【问题讨论】:

    标签: android android-layout android-linearlayout


    【解决方案1】:

    这很容易通过将LinearLayoutlayout_width 设置为0dp 并将每个TextViewlayout_weight 设置为1 来实现。

    【讨论】:

      【解决方案2】:
      <LinearLayout
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:gravity="center_horizontal">
      
          <TextView
              android:layout_width="0dp"
              android:layout_height="wrap_content"
              android:layout_weight="1"
              android:text="A"
              tools:ignore="HardcodedText" />
      
          <TextView
              android:layout_width="0dp"
              android:layout_height="wrap_content"
              android:layout_weight="1"
              android:text="B"
              tools:ignore="HardcodedText" />
      
          <TextView
              android:layout_width="0dp"
              android:layout_height="wrap_content"
              android:layout_weight="1"
              android:text="C"
              tools:ignore="HardcodedText" />
      
          <TextView
              android:layout_width="0dp"
              android:layout_height="wrap_content"
              android:layout_weight="1"
              android:text="D"
              tools:ignore="HardcodedText" />
      
          <TextView
              android:layout_width="0dp"
              android:layout_height="wrap_content"
              android:layout_weight="1"
              android:text="E"
              tools:ignore="HardcodedText" />
      
          <TextView
              android:layout_width="0dp"
              android:layout_height="wrap_content"
              android:layout_weight="1"
              android:text="F"
              tools:ignore="HardcodedText" />
      
          <TextView
              android:layout_width="0dp"
              android:layout_height="wrap_content"
              android:layout_weight="1"
              android:text="G"
              tools:ignore="HardcodedText" />
      </LinearLayout>
      

      我建议使用水平滚动视图作为从左到右滚动的父视图

      【讨论】: