首页>Program>source

Summary

最后,我发现了相关问题 setForeground() 错误地标记为在扩展 FrameLayout的ViewGroups上需要API 23

问题189041:setForeground()错误地标记为需要API 23(NewApi )用于扩展FrameLayout的ViewGroups

如果您不扩展 FrameLayout ,说明文件有误,并且需要API 23。

问题186273:View.setForeground API级别错误< / p>

Updated question

标记为重复使用不能使用 setForeground Commonsware在ImageView上使用的方法,并得到他的回答:

That is a documentation bug. setForeground() existed on FrameLayout from API Level 1; it is only on View as of API Level 23.

在我的情况下,叉中的检查未检测到文档错误,但在集成项目中却发现了该错误,无论如何,我还是不明白,这回答了我的最初问题。

但是情况不一样,这段代码已经扩展了 Framelayout 并使用此方法,它不是 ImageView ,因此我认为该方法已在API 23中删除。它现在没有出现在引用中。

Update: 我为FrameLayout添加了差异报告

New question

所以我的问题变成了以前版本中该方法的使用方式,为什么有选择地出现检查错误?

如果我添加了一个多余的演员表,错误消息就会消失:

((FrameLayout) layout).getForeground()

但是它正在访问 View 现在不支持的方法。

因此,我想定位先前的API会删除错误消息,但希望使用此Framelayout方法的解决方案或解决此问题的线索:

ANDROID_COMPILE_SDK_VERSION=23
ANDROID_BUILD_TOOLS_VERSION=23.0.1
ANDROID_DEFAULT_MIN_SDK_VERSION=19
ANDROID_DEFAULT_TARGET_SDK_VERSION=23

Workaround

简而言之,作为一种解决方法,我将类型更改为 FrameLayout 直接,因此不再有关于API和强制转换的警告,并且我测试了它在Android 4.4.4设备上的运行和调试效果,我认为它会崩溃,无论如何它只能在一个动画中使用,以后我会修复/替换它.

Initial question

我分叉并自定义了Google示例引用将方法标记为 API级别1和文档( getForeground() )显示相同的内容:

但是 View 显示要求API级别23的错误:

我发现了一个类似问题,这是一个错误 那样的情况,但是我认为这不是错误,因为原始的fork没有显示此错误消息。

我将尝试检测该消息的首次出现,但是我做了很多更改,所以请您多加注意。

android.view
最新回答
  • 7天前
    1 #

    最后我找到了相关的问题 setForeground() 错误地标记为对扩展 FrameLayout的ViewGroup需要API 23

    问题189041:setForeground()错误地标记为需要API 23(NewApi)来扩展FrameLayout的ViewGroups

    如果您不扩展 FrameLayout ,说明文件有误,并且确实需要API 23。

    问题186273:View.setForeground API级别错误

  • android:为什么不应该在样式中设置layout_width和layout_height?
  • c++:如何在创建新文件之前检查文件是否存在