微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – initializeScrollbars是未定义的?

背景

我正在使用this library,其中一个类(从ViewGroup扩展),在“PLA_AbsListView.java”中,在CTOR中,有这些行:

    final TypedArray a = context.obtainStyledAttributes(R.styleable.View);
    initializeScrollbars(a);
    a.recycle();

最近,我更新了SDK& Android的ADT支持新的Android版本(Lollipop – API21).

问题

自从我更新了所有内容后,我不断收到此错误

The method initializeScrollbars(TypedArray) is undefined for the type PLA_AbsListView

我试过的

我试图将API设置为低于21,但它没有帮助.

我也试图找出声明这个函数的位置.它应该是“View.java”中的受保护功能,但出于某种原因,我在the documentations中看不到它

这个问题

怎么会这样?

我该如何解决

这可能是文档中的错误吗?

以前,当针对Kitkat时它起作用了……

解决方法:

来自android-21的View.java来源:

/**
 * ...
 *
 * @removed
 */
protected void initializeScrollbars(TypedArray a) {
    // It's not safe to use this method from apps. The parameter 'a' must have been obtained
    // using the View filter array which is not available to the SDK. As such, internal
    // framework usage Now uses initializeScrollbarsInternal and we grab a default
    // TypedArray with the right filter instead here.
    TypedArray arr = mContext.obtainStyledAttributes(com.android.internal.R.styleable.View);

    initializeScrollbarsInternal(arr);

    // We ignored the method parameter. Recycle the one we actually did use.
    arr.recycle();
}

/**
 * ...
 *
 * @hide
 */
protected void initializeScrollbarsInternal(TypedArray a) {

您没有看到它,因为该方法是使用@removed注释的. initializeScrollbarsInternal()也不能使用,因为它是用@hide注释的.
评论开始,使用此方法并不安全,您应该将其报告给lib的作者.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐