【问题标题】:How to spread out textviews with different lengths evenly?如何均匀分布不同长度的文本视图?
【发布时间】:2014-06-30 09:49:44
【问题描述】:

我想在 listView 中展开不同长度的文本视图。 这是我到目前为止得到的:

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

    <TextView
        android:id="@+id/dateTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <View
        android:layout_width="2dp"
        android:layout_height="match_parent"
        android:layout_marginBottom="0dp"
        android:layout_marginTop="0dp"
        android:background="#EF6C00" >
    </View>

我想要实现的布局是这样的:

date | time | score | distance | altitude  

数字:

dd/mm/yyyy | hh:mm:ss | [0-1000] | [0-100] | [0-100]

10 spaces | 8 spaces | 4 spaces | 3 spaces | 3spaces

这就是它现在的样子,可悲的是:

【问题讨论】:

  • 为什么不用gridview或者tableview?

标签: android android-layout android-listview textview android-layout-weight


【解决方案1】:

您可以为此使用 Android 的 weight 属性

10 个空格 | 8 个空格 | 4 个空格 | 3 个空格 | 3个空格

因此 10 + 8 + 4 + 3 + 3(对于 TextView)+ 4(对于 View)= 32

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="32">

    <TextView
        android:id="@+id/dateTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="10"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <View
        android:layout_width="2dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:layout_marginBottom="0dp"
        android:layout_marginTop="0dp"
        android:background="#EF6C00" >

     <TextView
        android:id="@+id/dateTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="8"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <View
        android:layout_width="2dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:layout_marginBottom="0dp"
        android:layout_marginTop="0dp"
        android:background="#EF6C00" >

    <TextView
        android:id="@+id/dateTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="4"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <View
        android:layout_width="2dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:layout_marginBottom="0dp"
        android:layout_marginTop="0dp"
        android:background="#EF6C00" >

    <TextView
        android:id="@+id/dateTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <View
        android:layout_width="2dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:layout_marginBottom="0dp"
        android:layout_marginTop="0dp"
        android:background="#EF6C00" >

    <TextView
        android:id="@+id/dateTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    </LinearLayout>

【讨论】:

    【解决方案2】:

    试试这个:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:orientation="horizontal">
    
        <TextView
            android:id="@+id/dateTextView"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:layout_marginTop="5dp"
            android:adjustViewBounds="true"
            android:gravity="center_horizontal|center_vertical"
            android:text="@string/empty_int"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    <View
            android:layout_width="2dp"
            android:layout_height="match_parent"
            android:layout_marginBottom="0dp"
            android:layout_marginTop="0dp"
            android:background="#EF6C00" >
        </View>
     <TextView
            android:id="@+id/timeTextView"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="4"
            android:layout_marginTop="5dp"
            android:adjustViewBounds="true"
            android:gravity="center_horizontal|center_vertical"
            android:text="@string/empty_int"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    <View
            android:layout_width="2dp"
            android:layout_height="match_parent"
            android:layout_marginBottom="0dp"
            android:layout_marginTop="0dp"
            android:background="#EF6C00" >
        </View>
     <TextView
            android:id="@+id/scoreTextView"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="6"
            android:layout_marginTop="5dp"
            android:adjustViewBounds="true"
            android:gravity="center_horizontal|center_vertical"
            android:text="@string/empty_int"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    <View
            android:layout_width="2dp"
            android:layout_height="match_parent"
            android:layout_marginBottom="0dp"
            android:layout_marginTop="0dp"
            android:background="#EF6C00" >
        </View>
     <TextView
            android:id="@+id/distanceTextView"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="10"
            android:layout_marginTop="5dp"
            android:adjustViewBounds="true"
            android:gravity="center_horizontal|center_vertical"
            android:text="@string/empty_int"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    <View
            android:layout_width="2dp"
            android:layout_height="match_parent"
            android:layout_marginBottom="0dp"
            android:layout_marginTop="0dp"
            android:background="#EF6C00" >
        </View>
     <TextView
            android:id="@+id/altitudeTextView"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="10"
            android:layout_marginTop="5dp"
            android:adjustViewBounds="true"
            android:gravity="center_horizontal|center_vertical"
            android:text="@string/empty_int"
            android:textAppearance="?android:attr/textAppearanceMedium" />
    
    </LinearLayout>
    

    【讨论】:

      猜你喜欢
      • 2015-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多