作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已经实现了可点击的 Recyclerview
项并设置了 android:background="?selectableItemBackground"
以获得点击效果,但是在检查代码时我发现了这个 lint 问题。
Lint 警告:可能 overdraw :根元素绘制背景 ?selectableItemBackground
,主题也绘制背景
有解决此警告的想法吗?
我的 xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:clickable="true"
android:orientation="vertical"
android:padding="@dimen/row_padding">
//...
</LinearLayout >
最佳答案
默认情况下,主题具有指定的 android:windowBackground
属性,顾名思义,该属性指定启动 Activity 的窗口背景。
此 lint 警告仅告诉您以下内容:
Hey! I see your theme has a
windowBackground
applied, and your root layout draws some other drawable on top of window background, making window's background pointless - thus overdrawing pixels needlessly.
取消 windowBackground
将使 lint 不再提示:
<style name="AppTheme" parent="...">
...
<item name="android:windowBackground">@null</item>
</style>
关于android - 可能 overdraw : Root element paints background with a theme that also paints a background,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42198721/
我是一名优秀的程序员,十分优秀!