動的に作成されたチェックボックスにレイアウトマルギンを設定します

StackOverflow https://stackoverflow.com/questions/4059059

質問

サーバーからタスクとサブタスクのリストをダウンロードし、各アイテムの新しいチェックボックスを作成するタスクマネージャーアプリを作成し、それをリニアレイアウトに追加します(以下の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);
    }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top