【问题标题】:Can't override view.View method with Android Studio无法使用 Android Studio 覆盖 view.View 方法
【发布时间】:2013-07-28 21:47:15
【问题描述】:

我正在使用这个 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" 我检查了here,Android 2.1 确实有这个方法...

我知道覆盖的东西只适用于 4.3,但我稍后会更改它,这只是暂时的。

我只安装了 Java 1.6,我的所有设置都显示我使用的是 Java 6。

希望你能帮助我..

【问题讨论】:

    标签: android view overriding android-studio android-scrollview


    【解决方案1】:

    好吧,原来onDrawVerticalScrollBar在源文件中被@Hide注解了,而onDrawScrollbars是final方法。所以这是不可能的。

    【讨论】:

      猜你喜欢
      • 2021-09-24
      • 1970-01-01
      • 2014-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多