2011-12-20 2 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

당신은 FrameLayout 아동에 대한 LinearLayout 그러므로 당신이 설정하는 PARAMS의 아이가 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은 http://developer.android.com/reference/android/를 참조하여 LinearLayout의 자식이 아닙니다. widget/FrameLayout.html 및 FrameLayout.LayoutParams는 LinearLayout의 하위 항목이 아닙니다 .LayoutParams는 http://developer.android.com/reference/android/widget/FrameLayout.LayoutParams.html을 참조하십시오. 답이 구식입니까? – soriak