以编程方式将视图高度设置为 0dp,将权重设置为 1
Set View height to 0dp and weight to 1 programatically
通过 xml 创建 GridView
时,我使用了以下代码,但我如何在运行时以编程方式实现它?
android:layout_height="0dp"
android:layout_weight="1"
谢谢。
使用这个
GridView YOUR_GRID_VIEW =(GridView )findViewById(R.id.GridView )
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
/*width*/ ViewGroup.LayoutParams.MATCH_PARENT,
/*height*/ 0,
/*weight*/ 1.0f
);
YOUR_GRID_VIEW.setLayoutParams(param);
LayoutParams.MATCH_PARENT
是宽度,0 是高度,1.0f 是重量
如果 xml 中有 layout_weight
,这意味着 GridView
的父布局是 LinearLayout
。
引用已经附加到视图层次结构的 GridView
,您可以简单地获取该视图的 LayoutParams
,将其转换为 LinearLayout.LayoutParams
并执行必要的更改:
GridView gridView = ...;
LinearLayout.LayoutParams params = gridView.getLayoutParams();
params.weight = 1;
params.height = 0;
gridView.setLayoutParams(params);
否则,如果您从头开始构建 GridView
,则应自行创建 LinearLayout.LayoutParams
:
LinearLayout linearLayout = ...;
GridView gridView = new GridView(context);
LinearLayout.LayoutParams params =
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
/* height */ 0,
/* weight */ 1);
linearLayout.addView(gridView, params);
通过 xml 创建 GridView
时,我使用了以下代码,但我如何在运行时以编程方式实现它?
android:layout_height="0dp"
android:layout_weight="1"
谢谢。
使用这个
GridView YOUR_GRID_VIEW =(GridView )findViewById(R.id.GridView )
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
/*width*/ ViewGroup.LayoutParams.MATCH_PARENT,
/*height*/ 0,
/*weight*/ 1.0f
);
YOUR_GRID_VIEW.setLayoutParams(param);
LayoutParams.MATCH_PARENT
是宽度,0 是高度,1.0f 是重量
如果 xml 中有 layout_weight
,这意味着 GridView
的父布局是 LinearLayout
。
引用已经附加到视图层次结构的 GridView
,您可以简单地获取该视图的 LayoutParams
,将其转换为 LinearLayout.LayoutParams
并执行必要的更改:
GridView gridView = ...;
LinearLayout.LayoutParams params = gridView.getLayoutParams();
params.weight = 1;
params.height = 0;
gridView.setLayoutParams(params);
否则,如果您从头开始构建 GridView
,则应自行创建 LinearLayout.LayoutParams
:
LinearLayout linearLayout = ...;
GridView gridView = new GridView(context);
LinearLayout.LayoutParams params =
new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
/* height */ 0,
/* weight */ 1);
linearLayout.addView(gridView, params);