2012-10-22 7 views
24

JavaコードでAndroidアプリケーション用のダイアログを実装する必要があるため、XMLを使用できません。ボタンの体重をプログラムで設定する方法

私はレンジシークバーを実装しているルートLinearLayoutを持っています。ルートレイアウトの下に別のLinearLayoutがあります。水平方向には同じ行に2つのボタンを追加します。だから私はウェイトを1に設定し、幅はFILL_PARENTに、高さはWRAP_CONTENTに設定する必要があります。

私はJavaコードでこれをどうしますか?

答えて

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

rangeSeekBar.setLayoutParams(p); 

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

常にルートのPARAMタイプを使用するレイアウトのparamsを使用して...

例。あなたはRelativeLayout使用RelativeLayout.LayoutParams内へのparamsを適用するViewを...持っている場合

+0

これは動作しますが、感謝します。 – Zookey

+0

ありがとう、この作品 –

14

あなたはLinearLayout.LayoutParamsコンストラクタの一部としてそれを渡すことができます:あなたはwrap_content もしかして?

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

1.0Fは重量

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); 
関連する問題