一行布局两个文本视图的最佳实践

时间:2012-12-08 08:29:45

标签: android android-layout

我想在我的xml布局上有很多文本视图,其中每两个都在一行上,我这样做:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Name: " />

        <TextView
            android:id="@+id/playertvName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/red"
            android:textSize="20dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Nationality: " />

        <TextView
            android:id="@+id/playertvNationality"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/red"
            android:textSize="20dp" />
    </LinearLayout>

</LinearLayout>

但似乎不是继续为每两个textviews创建一个新的linearlayout的好方法,还有另一种方法吗?谢谢

4 个答案:

答案 0 :(得分:3)

试试GridLayout。这是official Google doc,这是example

答案 1 :(得分:2)

我相信,出于您使用布局(可能是一种形式)的目的,您开发它的方式非常好。在这种情况下,我认为GridView或任何AdapterView都不符合您的要求。

您可以LinearLayout使用适当的权重或RelativeLayout

答案 2 :(得分:1)

您可以使用TableLayout或GridView作为LinearLayout的替代。

  1. TableLayout允许您以表格格式对齐文本视图,如果textview的数量非常小并且已修复,我建议使用TableLayout。

  2. GridView允许您在Grid fasion中布局组件,它是一个适配器视图,这意味着,通过GridView,我们可以重用视图。它在某种程度上增加了复杂性,因此当没有文本视图时,它很有用。

答案 3 :(得分:0)

使用一个相对布局并使用android:layout_toLeftOf =“”,android:layout_toRightOf =“”         机器人:layout_below = “”         android:layout_above =“”