我目前正以编程方式将按钮添加到我的布局到linearLayout。这很有效,直到我的按钮超出屏幕宽度。有没有办法让他们智能地翻转到下一行?
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>
我的onClick代码:
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次后:
答案 0 :(得分:0)
LinearLayouts只在单一方向上扩展(在你的情况下是水平方向),所以它无法自动“包裹”。如果你想要一个滚动条,你可以将它封装在ScrollView中,但它们仍然会在一行中。
您正在做的更好的匹配是GridView(http://developer.android.com/reference/android/widget/GridView.html)。您提供了一个ListAdapter,它使用组织成网格的条目填充它。
这里有一个很好的GridView示例:http://www.mkyong.com/android/android-gridview-example/