2011-12-20 7 views
5

私は次のように(この図はLinearLayoutの下部中央に浮かぶだろう)、プログラムFrameLayoutを作成しようとしているlayout_weight:でframeLayoutがプログラム

FrameLayout bottomFrameLayout = new FrameLayout(context); 
    bottomFrameLayout.setLayoutParams(new FrameLayout.LayoutParams(0,LayoutParams.FILL_PARENT,Gravity.CENTER | Gravity.BOTTOM)); 

私はlayout_width=0dpを設定しているので、私はまた、設定したいと思いますlayout_weightを使用して幅を制御します。どうやってやるの?

答えて

16

FrameLayoutLinearLayoutの子であるため、LinearLayoutに子のパラメータを設定しているので、LinearLayout.LayoutParams (int width, int height, float weight)コンストラクタを使用する必要があります。

編集:

FrameLayout bottomFrameLayout = new FrameLayout(context); 
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0,LayoutParams.FILL_PARENT,mWeight); 
lp.gravity = Gravity.CENTER | Gravity.BOTTOM; 
bottomFrameLayout.setLayoutParams(lp); 
+0

私は重力を設定するのですか体重を設定するためにLinearLayout.LayoutParamsを使用している場合は? – prostock

+0

'layoutParamsObject.gravity = Gravity.SOME_OF_THE_CONSTANTS'のように' gravity'フィールドに値を代入してみてください。 –

+3

@NikolaDespotoski FrameLayoutは参考文献によるLinearLayoutの子ではありません。http://developer.android.com/reference/android/ウィジェット/ FrameLayout.htmlとFrameLayout.LayoutParamsはLinearLayout.LayoutParamsの子ではありません。http://developer.android.com/reference/android/widget/FrameLayout.LayoutParams.htmlを参照してください。あなたの答えは時代遅れですか? – soriak

関連する問題