Android:在linearlayout中创建两列

时间:2011-12-09 14:51:20

标签: android android-layout

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/linearLayout2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Street" 
            android:layout_gravity="left"/>

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="456546546"
            android:layout_gravity="right" />

    </LinearLayout>

</LinearLayout>

我正在尝试创建一个包含两列的布局,左侧有一个textview,右侧有一个textview。但是,文本视图仍然在左侧。

7 个答案:

答案 0 :(得分:83)

您应该使用android:layout_weight属性。这是一个例子:

<LinearLayout
    android:id="@+id/linearLayout2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Street" 
        android:layout_gravity="left"
        android:background="#88FF0000"/>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="456546546"
        android:layout_gravity="right" 
        android:background="#8800FF00"/>

</LinearLayout>

enter image description here

答案 1 :(得分:4)

是的,这个令人困惑。即使LinearLayout的宽度设置为fill_parent,它仍然只需要所需的最小宽度。您需要将第二个TextView设置为fill_parent,然后将其重力设置为右:

<LinearLayout
    android:id="@+id/linearLayout2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Street"/>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="456546546"
        android:gravity="right" />

</LinearLayout>

答案 2 :(得分:3)

如果您希望每列中有多行,则可以使用Table Layout

答案 3 :(得分:3)

我希望它对你有所帮助。

试试此代码..

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


    <LinearLayout 
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:background="#00FF00"
        android:paddingRight="90dp"
        android:orientation="vertical" >

        <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/b1"
            android:text="Button 1"/>

    </LinearLayout>

    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FF00FF"
        android:orientation="vertical" >     

        <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/b2"
            android:text="Button 2"/>

    </LinearLayout>

</LinearLayout>

答案 4 :(得分:2)

如果你需要按钮之间的间隙:

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

    <Button

        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.95"
        android:text="Via SMS" />

    <View
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.05" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.95"
        android:text="Diaporama" />
</LinearLayout>

答案 5 :(得分:1)

执行此操作时尝试表格布局。在图形布局上拖动表格布局将项目放在单元格中。

答案 6 :(得分:0)

对于您的列只有两个垂直LinearLayouts的潜在问题是,如果行高可变,则无法确保行排成一行。 TableLayout最适合这种情况,并且还为您提供了一系列关于列如何缩小或增长以填充可用空间的控制。

自@ santhosh-shettigar发布以来,链接已发生变化。
指南:https://developer.android.com/guide/topics/ui/layout/grid.html
参考:http://developer.android.com/reference/android/widget/TableLayout.html