android - 无法使用 Android Studio 覆盖 view.View 方法

标签 android view overriding android-studio android-scrollview

我正在使用这个 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/

相关文章:

安卓打开pdf文件

java - 无法检索 JSON 值

android:state_enabled ="false"不工作

MySQL 存储过程或动态 View

c++ - 我可以判断是否实现了 C++ 虚函数吗

android - 屏幕之间的导航( Activity )(Android 2.2)

即使在正确设置 abiFilters 之后,Android Studio 也会忽略 ndk-build 的 APP_ABI

c# - new 和 override 的区别

unit-testing - 如何在 Golang 中仅模拟特定方法

android - 在 Android 中不使用 intent extras 将字符串传递给另一个 Activity