我刚刚开始学习android开发(以及Java),并且正在尝试修改Sliding Drawer小部件。我注意到我找到的代码如下:
final int childHeight = mHandleHeight;
int height = mBottom - mTop - childHeight - mTopOffset;
为什么使用“mBottom -mTop”代替getHeight()?另外,为什么当mHandleHeight已经存在时专门为childHeight创建的变量?
编辑:更改了引用代码中的第二行;在编写我们自己的视图时,我们无法使用这些变量(mBottom,mTop),因此我们必须使用方法'getTop()'和'getBottom()'。
答案 0 :(得分: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可以改变中间功能,所以你想要一个快照。