我正在使用这个 ObservableScrollView 类扩展 ScrollView(版权为 Roman Nurik):
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 没问题。
在我的清单中: minSdkVersion="7" 和 targetSdkVersion="18" 我在这里检查过,Android 2.1 确实有这个方法......
我知道覆盖的东西只能与 4.3 一起使用,但我稍后会更改它,这只是暂时的。
我只安装了 Java 1.6,我的所有设置都说我使用的是 Java 6。
希望你能帮我..