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的作者.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...