我刚开始学习 android 开发(和 Java 相关),并试图修改 Sliding Drawer 小部件。我注意到通过代码我发现如下行:
final int childHeight = mHandleHeight;
int height = mBottom - mTop - childHeight - mTopOffset;
为什么使用“mBottom - mTop”而不是 getHeight()?还有,为什么mHandleHeight已经存在了,还要专门为childHeight创建一个变量?
编辑:更改了引用代码中的第二行;这些变量(mBottom、mTop)在编写我们自己的 View 时不可用,因此我们必须改用方法“getTop()”和“getBottom()”。
最佳答案
呃,我不知道为什么我不先看看 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 可以更改中间函数,因此您需要一个快照。
关于android - getHeight() 与 mBottom 的区别 - mTop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11321216/