![](/img/trans.png)
[英]RelativeLayout addRule at BaseAdapter doesn't work very well
[英]addRule(RelativeLayout.BELOW, id) doesn't work
我嘗試在彼此下方創建5個按鈕,但它們彼此顯示
ArrayList<Button> btn = new ArrayList<>();
for (int i=0; i<10; i++) {
Log.d("TEST", Integer.toString(i));
btn.add(new Button(this));
btn.get(i).setText(Integer.toString(i));
if (i == 0) {
btn.get(i).setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
} else {
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.BELOW, btn.get(i-1).getId());
btn.get(i).setLayoutParams(lp);
}
ll.addView(btn.get(i));
我的代碼有什么問題?
通過添加btn.get(i).setId(View.generateViewId())解決。 使用setId()之前,按鈕的所有ID均為-1。
從您將布局命名為“ ll”的方式來看,您似乎正在將這些按鈕添加到LinearLayout中。 如果是這種情況,請嘗試將該容器布局更改為RelativeLayout。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.