Android 在几行上逐个将按钮添加到布局中

Android 在几行上逐个将按钮添加到布局中,android,Android,我想开发类似于本机应用程序的消息传递应用程序。问题是,当我添加两个或三个按钮后,根据名称大小添加按钮时,会变成这样 我的代码如下 RelativeLayout tr = (RelativeLayout) findViewById(R.id.contacts_div); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.W

我想开发类似于本机应用程序的消息传递应用程序。问题是,当我添加两个或三个按钮后,根据名称大小添加按钮时,会变成这样

我的代码如下

RelativeLayout tr = (RelativeLayout) findViewById(R.id.contacts_div); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); Button b = new Button(MainActivity.this); b.setText(name); b.setId(id); tr.addView(b,params); if(prev_id!=0) { params.addRule(RelativeLayout.RIGHT_OF,prev_id); } RelativeLayout tr=(RelativeLayout)findViewById(R.id.contacts_div); RelativeLayout.LayoutParams params=新的RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_内容,RelativeLayout.LayoutParams.WRAP_内容); 按钮b=新按钮(MainActivity.this); b、 setText(姓名); b、 setId(id); tr.addView(b,参数); 如果(上一个id!=0) { params.addRule(RelativeLayout.RIGHT\u OF,prev\u id); } 我想如果没有足够的空间,它将添加到下一行。 我在堆栈溢出中尝试了很多帖子,但都没有解决这个问题
提前感谢

您应该使用gridview进行此操作。

设置文本后,请尝试通过代码设置按钮位置,然后您可以查看按钮的总宽度是否过大。然后你就会知道什么时候在下一行上放置一个按钮

正如@Snicolas所说,使用
GridView
,布局会更容易


我希望这将对您有所帮助。

您应该使用FlowLayout。它不是标准的android组件,所以您应该找到自己喜欢的实现

你想要流动布局。搜索:)可能重复@AleksG所说的,你需要使用Flow Layout来实现这一点我想让它适用于minSdkVersion=8和gridview适用于minSdkVersion=14你与GridLayout.HappyDump混淆了我想让它适用于minSdkVersion=8,如果你能指导我如何获得总宽度和可用宽度,“Button”类继承自具有“getWidth()”方法的“Android.View”,这将非常有帮助。从那里你可以把它们加起来,加上填充/边距,得到总宽度。您还可以将其与“活动”宽度进行比较。