我正在开发一个根据用户设置的字符串创建动态界面的应用程序。
我的 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
.
我的问题是:我希望Buttons
200dp 宽,然后是TextView
,但目前它的宽度来自WRAP_CONTENT
. 当我将它Button
添加RelativeLayout
到.setLayoutParams
TableRow
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 - 我需要它是动态的。