Android SDK中getWidth/Height()和getMeasuredWidth/Height()之间的区别是什么?
结果表明,视图有两种尺寸:测量尺寸和工程图尺寸。测量尺寸是在测量过程(方法)中计算的尺寸,而图纸尺寸是屏幕上的实际尺寸。文件特别指出: 这些值可能(但不一定)不同于测量的宽度和高度 所以,我的问题是:是什么使图纸尺寸与测量尺寸不同?如果方法符合布局要求(作为参数widthMeasureSpec和heightMeasureSpec给出),SDK如何决定视图应具有不同的图形尺寸Android SDK中getWidth/Height()和getMeasuredWidth/Height()之间的区别是什么?,android,android-layout,view,size,dimensions,Android,Android Layout,View,Size,Dimensions,结果表明,视图有两种尺寸:测量尺寸和工程图尺寸。测量尺寸是在测量过程(方法)中计算的尺寸,而图纸尺寸是屏幕上的实际尺寸。文件特别指出: 这些值可能(但不一定)不同于测量的宽度和高度 所以,我的问题是:是什么使图纸尺寸与测量尺寸不同?如果方法符合布局要求(作为参数widthMeasureSpec和heightMeasureSpec给出),SDK如何决定视图应具有不同的图形尺寸 此外,如何/在何处使用测量的宽度/高度来计算图纸的宽度/高度?我试图查看,但我不知道如何使用测量的宽度/高度来计算最终的宽
此外,如何/在何处使用测量的宽度/高度来计算图纸的宽度/高度?我试图查看,但我不知道如何使用测量的宽度/高度来计算最终的宽度/高度。可能与填充有关,但我不确定。顾名思义,测量的宽度/高度是u在测量和布局阶段进行sed 我举个例子, 一个小部件被要求测量它自己,小部件说它想要200px乘以200px。这是测量的宽度/高度 在布局阶段,即在onLayout方法中。该方法可以使用其子级的measuredWidth/height,或者通过调用视图的布局方法来指定新的宽度/高度 假设onLayout方法调用childview.layout(0,0150150),现在视图的宽度/高度与测量的宽度/高度不同 我建议不要使用测量宽度/高度外部仅限布局方法 总而言之
公共无效视图。布局(int l、int t、int r、int b)
似乎是位置和大小分配发生的地方。我认为,如果在视图中添加了滚动,这些度量可能会有所不同。可能吧,但我开发了一个自定义视图组,这在我的代码中发生。在出现这种行为之前,我不会处理滚动。因此我认为应该有更多我确认,我也开发了一个自定义视图组来强制给定的纵横比:我强制测量宽度和高度(低于或等于建议值),但结果实际宽度和高度没有改变(不是测量值)。与滚动无关。我真的找不到强制使用真实宽度和高度的方法。也就是说,我们应该始终使用getWidth/getHeight来获取视图的“真实”维度,对吗?是的,但是如果您正在进行自己的布局,那么您应该使用measuredWidth而不是width。那么,在onMeasure()中设置维度的目的是什么?我的意思是,布局过程是最后一个过程,在此过程中,您可以设置视图的最终尺寸,可能与测量值无关dimensions@edoardotognoni它取决于布局(LinearLayout、RelativeLayout或您的自定义布局),为视图提供正确的大小和位置。好的,假设视图告诉“我想要这些尺寸”.而布局上写着“你将拥有这些尺寸”,对吗?