1

我目前正在以编程方式将按钮添加到我的布局中到线性布局中。这很好用,直到我的按钮超出屏幕的宽度。有没有办法让他们智能地翻转到下一行?

XML:

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context=".MainActivity" >



    <LinearLayout

        android:id="@+id/linearLayout1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:orientation="horizontal"

        android:layout_alignParentTop="true" >

    </LinearLayout>



    <Button

        android:id="@+id/button1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentBottom="true"

        android:layout_alignParentRight="true"

        android:onClick="doThis"

        android:text="Button" />



</RelativeLayout>

我的点击代码:

public void doThis(View view){

Button myBtn = new Button(this);

LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout1);

myBtn.setText("hello");

layout.addView(myBtn);
}

此代码有效,但在添加第三个按钮后,它开始离开屏幕。任何意见,将不胜感激。

doThis 运行 4 次后:

在此处输入图像描述

doThis 运行 10 次后:

在此处输入图像描述

4

1 回答 1

0

LinearLayouts 仅在单个方向(在您的情况下为水平方向)扩展,因此无法自动“换行”。如果你想要一个滚动条,你可以将它封装在一个 ScrollView 中,但它们仍然会在一行中。

GridView ( http://developer.android.com/reference/android/widget/GridView.html ) 更适合您正在做的事情。您提供了一个 ListAdapter,它使用组织成网格的条目来填充它。

这里有一个很好的 GridView 示例:http ://www.mkyong.com/android/android-gridview-example/

于 2013-07-01T23:40:08.287 回答