32

Java コードを使用して Android アプリのダイアログを実装する必要があるため、XML を使用できません。

LinearLayout範囲シークバーを実装するルートがあり、次にLinearLayoutルートレイアウトの下に水平方向の別のレイアウトがあり、同じ行に2つのボタンを追加します。したがって、重みを 1 に設定し、幅FILL_PARENTと高さをに設定する必要がありWRAP_CONTENTます。

Javaコードでそれを行うにはどうすればよいですか?

4

4 に答える 4

62
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
p.weight = 1;

rangeSeekBar.setLayoutParams(p);

レイアウト パラメータを設定するビューがわかりません。例を示すために rangeSeekbar を仮定しました。必要に応じて変更してください。

レイアウト パラメータを使用する場合は、常にルートのパラメータ タイプを使用してください。

元。使用View中にパラメータを適用したい場合..RelativeLayoutRelativeLayout.LayoutParams

于 2012-10-22T17:06:08.340 に答える
17

LinearLayout.LayoutParams コンストラクターの一部として渡すことができます。

LayoutParams param = new LinearLayout.LayoutParams(
                         LayoutParams.MATCH_PARENT,
                         LayoutParams.WRAP_CONTENT, 1.0f);

1.0f は重みです

于 2012-10-22T17:08:59.280 に答える
0

XML を使用する必要はありませんか? そうでない場合は、常に XML でレイアウトをLayoutInflater構築し、実行時に を使用してビュー階層を構築し、それをsetView()ダイアログに渡すことができます。

例えば:

LayoutInflater inflater = LayoutInflater.from(getActivity());
View v = inflater.inflate(R.layout.my_dialog_layout, null);

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setView(v);
于 2012-10-22T17:11:59.427 に答える