2013-10-08 28 views
0

我想开发消息应用程序,如原生应用程序。问题是,当我把两个或三个按钮取决于名字规模将变成这个样子 enter image description here将按钮添加到缕行上的布局中

我的代码后添加按钮是如下

 
    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); 

       } 

我想,如果有足够的空间不可用时,它将添加到下一行。 我尝试了很多帖子在堆栈溢出但未能解决此问题 在此先感谢

+0

您想要FlowLayout。搜索它:) –

+1

可能的重复的[我怎么能做一些像在Android的FlowLayout?](http://stackoverflow.com/questions/4474237/how-can-i-do-something-like-a-flowlayout -in-android) –

+0

正如@AleksG所说,你需要使用流布局来实现这个 – Dinash

回答

0

您应该使用gridview来做到这一点。

+0

我想使它适用于minSdkVersion = 8和gridview工作minSdkVersion = 14 –

+0

你对GridLayout感到困惑。 – Snicolas

0

尝试通过yout代码设置您的按钮位置一旦文本设置,然后您可以看到,如果您的按钮的总宽度太大。然后你会知道何时在下一行放置一个按钮。

而@Snicolas表示使用GridView,放置会更容易。

我希望这会帮助你。

+0

HappyDump我想让它适用于minSdkVersion = 8,如果你能指导我如何获得总宽度和可用宽度,那将是很大的帮助 –

+0

'Button'类继承自'Android.View',它具有' getWidth()'方法。从那里你可以添加它们并添加填充/边距并获得总宽度。您可以将其与“活动”宽度进行比较。 – HappyDump