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.
}
}
ここで何か不足していますか?サブクラスがスーパークラスのパッケージ レベル メソッドを呼び出せないのはなぜですか?