Material Slider OnSliderTouchListener 的方法只能从同一库组内调用

Fil*_*ito 8 android kotlin material-components-android

实现 BaseOnSliderTouchListeneronStartTrackingTouchonStopTrackingTouch文档)会给 lint 提供以下错误消息:

错误:BaseOnSliderTouchListener.onStartTrackingTouch 只能从同一库组内调用(从 groupId=your-group-id 引用 groupId=com.google.android.material)[RestrictedApi]

小智 12

我遇到过同样的问题。解决方法与@SuppressLint("RestrictedApi")作品。

根本原因是该类BaseOnSliderTouchListener具有库限制范围,并且其中公开的方法在OnSliderTouchListener.

该问题在材料组件库中进行跟踪:https://github.com/material-components/material-components-android/issues/2493

它已在材料组件的 1.6.0-alpha02 版本中修复。


Fil*_*ito 6

临时解决方案:

添加@SuppressLint("RestrictedApi")注释。

例子:

    slider.addOnSliderTouchListener(object : Slider.OnSliderTouchListener {
        @SuppressLint("RestrictedApi")
        override fun onStartTrackingTouch(slider: Slider) {
             [...]
        }

        @SuppressLint("RestrictedApi")
        override fun onStopTrackingTouch(slider: Slider) {
          [...]
        }
    })
Run Code Online (Sandbox Code Playgroud)