ユーザーが設定した文字列に従って動的なインターフェイスを作成するアプリを開発しています。
XML ファイルにあるのは だけです。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のみです-動的である必要があります。