動的に作成されたチェックボックスにレイアウトマルギンを設定します
-
27-09-2019 - |
質問
サーバーからタスクとサブタスクのリストをダウンロードし、各アイテムの新しいチェックボックスを作成するタスクマネージャーアプリを作成し、それをリニアレイアウトに追加します(以下のLLと呼ばれます)。私が抱えている問題は、XMLでできるようにJavaを使用して「レイアウトマージンが残っている」を設定できないことです(これは、サブタスクが画面に少しインデントするためです)。他のほとんどのXMLプロパティを設定できますが、CB.SetMargins()は機能しません(タイプチェックボックスの場合は定義されていません)。もちろんパディングを設定しても、望ましい結果は得られません。
for(int i=0;i<tasks.size();i++) {
CheckBox cb = new CheckBox(this);
cb.setText(tasks.get(i).subtask_desc);
cb.setButtonDrawable(R.drawable.checkbox_xml);
ll.addView(cb);
}
何かアイデアや私はこれをどのように進めるでしょうか?
解決
正しいLayoutParamsを使用して、LinearLayoutにチェックボックスを追加する必要があると思います。
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = 123;
li.addView(cb, params);
それが役立つことを願っています!
他のヒント
こんにちはこれを試してみてください...
private LinearLayyout ll = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.leftMargin = 123;;
CheckBox cb;
for(int i = 0; i < 10; i++) {
cb = new CheckBox(this);
cb.setText(categoryListArray[i]);
ll.addView(cb, ll);
}
所属していません StackOverflow