我正在使用这个 ObservableScrollView 类(版权所有 Roman Nurik)扩展 ScrollView:
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ScrollView;
/**
* A custom ScrollView that can accept a scroll listener.
*/
public class ObservableScrollView extends ScrollView {
private Callbacks mCallbacks;
public ObservableScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDrawVerticalScrollBar(Canvas canvas, Drawable scrollBar, int l, int t, int r, int b) {
this.getOverlay().add(scrollBar);
super.onDrawVerticalScrollBar(canvas, scrollBar, l, t, r, b);
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
if (mCallbacks != null) {
mCallbacks.onScrollChanged();
}
}
@Override
public int computeVerticalScrollRange() {
return super.computeVerticalScrollRange();
}
public void setCallbacks(Callbacks listener) {
mCallbacks = listener;
}
public static interface Callbacks {
public void onScrollChanged();
}
}
问题是,Android Studio (0.2.2) 说它找不到我想要覆盖的 OnDrawVerticalScrollBar 方法。不过 onScrollChanged 没问题。
在我的 list 中:minSdkVersion="7"和 targetSdkVersion="18" 我检查了 here而Android 2.1确实有这个方法...
我知道叠加的东西只适用于 4.3,但我稍后会更改它,这只是暂时的。
我只安装了 Java 1.6,但我的所有设置都显示我使用的是 Java 6。
希望你能帮助我..
最佳答案
好吧,原来onDrawVerticalScrollBar在源文件中是用@Hide注解的,而onDrawScrollbars是final方法。所以这是不可能的。
关于android - 无法使用 Android Studio 覆盖 view.View 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17913237/