2

我刚开始学习 android 开发(以及 Java),并试图修改 Sliding Drawer 小部件。我注意到通过代码我发现如下行:

final int childHeight = mHandleHeight;
int height = mBottom - mTop - childHeight - mTopOffset;

为什么使用“mBottom - mTop”而不是 getHeight()?另外,当 mHandleHeight 已经存在时,为什么要专门为 childHeight 创建一个变量?

代码:http ://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.3_r1/android/widget/SlidingDrawer.java?av=f 第637行

编辑:更改了引用代码中的第二行;在编写自己的视图时,这些变量(mBottom,mTop)对我们不可用,因此我们必须使用方法 'getTop()' 和 'getBottom()' 来代替。

4

1 回答 1

1

嗯,我不知道为什么我不只是查看 ViewGroup 的代码,我不习惯我的 SDK 如此开放/随时可用:) http://grepcode.com/file/repository .grepcode.com/java/ext/com.google.android/android/4.0.3_r1/android/view/View.java#View.getHeight%28%29显示函数定义,很简单

6956     public final int getHeight() {
6957         return mBottom - mTop;
6958     }

由于这是问题的主要观点,我会尽可能标记为已回答,并希望有人从中受益。仍然不知道为什么会有额外的变量;也许在多线程环境中 mChildHeight 可以改变中间功能,所以你想要一个快照。

于 2012-07-04T07:04:19.010 回答