我正在尝试通过自己扩展AdapterViewAnimator来自定义实现 Android 的StackView。AdapterViewAnimator 中包含几个方法,它们对我的子类很有用,所以我把我的子类放在同一个包中,希望能够访问它们,因为它们是包级方法:android.widget
void configureViewAnimator(int numVisibleViews, int activeOffset) {
if (activeOffset > numVisibleViews - 1) {
// Throw an exception here.
}
mMaxNumActiveViews = numVisibleViews;
mActiveOffset = activeOffset;
mPreviousViews.clear();
mViewsMap.clear();
removeAllViewsInLayout();
mCurrentWindowStart = 0;
mCurrentWindowEnd = -1;
}
请注意,此方法是包级别的方法,这就是为什么我的子类也需要包含在内的原因android.widget
。即便如此,编译器(Java 7)告诉我该方法不存在,因此我无法在我的类中调用我的超类上的方法:
package android.widget;
public class Foo extends AdapterViewAnimator {
public void init(){
super.configureViewAnimator(3,1); // Method does not exist.
}
}
我在这里错过了什么吗?为什么我的子类不能调用超类的包级方法?