我正在开发一个根据用户设置的字符串创建动态界面的应用程序。
我的 XML 文件中唯一的东西是 a ScrollView,其余的是 java 代码:
ScrollView sv = (ScrollView)findViewById(R.id.sv);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
TableLayout tl = new TableLayout(this);
TableRow[] tr = null;
然后我破译一个字符串,它会告诉我需要添加多少个按钮。每个旁边Button应该是一个TextView. 在 for 循环中,我创建Buttons和TextViews并将它们TableRow添加到 中TableLayout,然后将其添加到 中,然后将LinearLayout其添加到添加到ScrollView.
我的问题是:我希望Buttons200dp 宽,然后是TextView,但目前它的宽度来自WRAP_CONTENT. 当我将它Button添加RelativeLayout到.setLayoutParamsTableRow
final float scale = getBaseContext().getResources().getDisplayMetrics().density;
int pixels = (int) (200 * scale + 0.5f);
RelativeLayout.LayoutParams rel_btn = new RelativeLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
rel_btn.height = pixels;
rel_btn.width = pixels;
btn.setLayoutParams(rel_btn);
tr[i].addView(btn);
tr[i].addView(tv);
tl.addView(tr[i]);
有谁知道如何解决我的问题TableLayout?
我读过嵌套LinearLayouts可能是一种不同的方法,但我似乎找不到任何 java 示例,只有 XML - 我需要它是动态的。