Android myView.getLayoutParams().height=screenHeight和myView.setLayoutParams(lp)之间的区别?
在动态更改布局高度时,我通常使用LayoutParams设置所需的尺寸,如:Android myView.getLayoutParams().height=screenHeight和myView.setLayoutParams(lp)之间的区别?,android,dynamic,height,android-relativelayout,layoutparams,Android,Dynamic,Height,Android Relativelayout,Layoutparams,在动态更改布局高度时,我通常使用LayoutParams设置所需的尺寸,如: RelativeLayout myView = (RelativeLayout) v.findViewById(R.id.myView); RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.FILL_PARENT,
RelativeLayout myView = (RelativeLayout) v.findViewById(R.id.myView);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.FILL_PARENT,
screenHeight);
myView.setLayoutParams(lp);
但也有一个较短的版本:
myView.getLayoutParams().height = screenHeight;
在我的案例中,这两种方法都有效,我当然更喜欢第二种方法,因为它简单得多,但是我需要注意的是,这两种方法之间有什么区别吗
谢谢 你可以看一眼视野
调用setLayoutParams
时,也会执行以下语句
resolveLayoutParams();
if (mParent instanceof ViewGroup) {
((ViewGroup) mParent).onSetLayoutParams(this, params);
}
requestLayout();
因此,基本上会立即调用requestLayout()
。同时,家长也会被告知这些变化
使用myView.getLayoutParams()时,高度=屏幕高度代码>视图也必须重新显示。这可能由视图本身在其他点完成,或者必须手动完成
这取决于调用myView.getLayoutParams()的时间。高度=屏幕高度
如果
getLayoutParams()。高度=屏幕高度在第一次布局/测量视图之前调用code>,这应该可以工作。hmmm,很有趣。这似乎是以编程方式更改维度时的一个重要问题。也许这就是为什么当我们使用setLayoutParams时xml参数被覆盖的原因(这发生在我身上)。