如何动态设置一个fragment控件宽高?

一个简单方便的做法是,在fragment外部套一层RelativeLayout或者LinearLayout,将fragment控件宽高都写成fill_parent,即可通过LayoutParams修改RelativeLayout宽高,间接限制fragment宽高。

1
2
3
4
5
6
7
8
9
                    
RelativeLayout fragment_rl = (RelativeLayout)findViewById(R.id.fragment_rl);
LayoutParams para = fragment_rl.getLayoutParams();
WindowManager wm = getApplicationContext().getWindowManager();
int imagewidth1 = wm.getDefaultDisplay().getWidth();
if(imagewidth1 != 0){
para.width = imagewidth1;
para.height = imagewidth1 * 250 / 640;//高度根据比例进行计算,当前比例是(宽640:高250)
fragment_rl.setLayoutParams(para);
}

fragment_rl就是某个fragment的外层layout。目的是通过调整fragment_rl的宽高,来限制fragment大小,使其宽度和屏幕一致,高度根据比例进行计算。


Fork me on GitHub