【问题标题】:Vertically spacing TextViews in LinearLayout在 LinearLayout 中垂直间隔 TextView
【发布时间】:2014-08-14 10:17:43
【问题描述】:

我有一个 LinearLayout,我想垂直添加 3 个 TextView。我能做到的。

我的问题是:如何让 TextViews 在我恰好为 800x600 像素的 LinearLayout 中垂直均匀分布。

鉴于 LinearLayout 的高度为 600 像素,这意味着将 3 行文本放置在 y=150、y=300、y=450 行(大约)上。

如何创建一个 XML 文件来实现垂直间距?

注意:我不想使用绝对坐标。

【问题讨论】:

  • 你需要为它们使用重力和重量

标签: android textview android-linearlayout


【解决方案1】:

下面是均匀管理文本视图的代码,只需复制粘贴即可

当您在 xml 代码中使用重量和重力进行设计时,它将在所有屏幕上自动调整

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#ffffff"
        android:text="1"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#ffffff"
        android:text="2"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#000000" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="#ffffff"
        android:text="3"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#000000" />

</LinearLayout>

【讨论】:

    【解决方案2】:

    你可以在layout_weight的帮助下做


    示例

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="text1"
        android:textAppearance="?android:attr/textAppearanceLarge" />
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="text2"
        android:textAppearance="?android:attr/textAppearanceLarge" />
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:text="text3"
        android:textAppearance="?android:attr/textAppearanceLarge" />
    

    【讨论】:

      【解决方案3】:

      您可以使用 weight 属性来使 TextView 的缩放到窗口的大小。此外,您可以指定重力属性以使TextView 中的文本居中。

      在这段代码中,TextView 各占屏幕的 1/3:

      <LinearLayout
          xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          tools:context="com.example.test"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:orientation="vertical">
      
          <TextView
              android:id="@+id/tv1"
              android:layout_weight="1"
              android:layout_margin="5dp"
              android:layout_width="wrap_content"
              android:layout_height="0dp"
              android:gravity="center"
              android:text="tv1"/>
      
          <TextView
              android:id="@+id/tv2"
              android:layout_weight="1"
              android:layout_margin="5dp"
              android:layout_width="wrap_content"
              android:layout_height="0dp"
              android:gravity="center"
              android:text="tv1"/>
      
          <TextView
              android:id="@+id/tv3"
              android:layout_weight="1"
              android:layout_margin="5dp"
              android:layout_width="wrap_content"
              android:layout_height="0dp"
              android:gravity="center"
              android:text="tv1"/>
      
      </LinearLayout>
      

      【讨论】:

      • 根 LinearLayout 上的 android:weightSum=3 在哪里?
      • @Losin'Me 这里不需要 weightSum,因为它是隐式计算的并设置为 3。
      • 谢谢大家。我稍后会试试看!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 1970-01-01
      • 1970-01-01
      • 2020-08-15
      • 2017-07-28
      • 2011-12-18
      • 1970-01-01
      相关资源
      最近更新 更多