android:focusable=“true“ 导致有背景阴影
作者:互联网
之前做一个TV项目的时候,Android系统版本是9.0,需要遥控器做选中效果,需要给控件设置 android:focusable=“true” 属性,才能选中,但是会有一个灰色背景 或者是 一个背景框,总之有个背景。
focusable导致有背景阴影一开始我以为是自己的 TextView 设置的 background 导致的,去掉background 依然会有背景阴影。
后来又考虑是不是自己设置的 shape 导致的,去掉 shape 依然有,顿时懵逼了…
实在没办法,追看 style 源码,看到如下一句,眼睛瞬间瞪大(眼睛瞪得像铜铃)
就是这句 selectableItemBackground 英文翻译过来 选中item背景
继续追源码 点击 abc_item_background_holo_dark
太长了,后面没有截全,但是 小伙伴 应该能看到了吧!!!
**
去掉灰色背景方法如下:
**
我的style如下:
<style name="BaseDialogStyle" parent="Theme.AppCompat.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<!-- 设置是否半透明 -->
<item name="android:windowIsTranslucent">true</item>
<!-- 重点是下面这句,设置为透明 -->
<item name="android:selectableItemBackground">@android:color/transparent</item>
<!-- 窗口背景 -->
<item name="android:windowBackground">@android:color/transparent</item>
<!-- 背景遮挡模糊 -->
<item name="android:backgroundDimEnabled">true</item>
</style>
通过追踪源码,重点是这句
<item name="android:selectableItemBackground">@android:color/transparent</item>
标签:color,focusable,源码,background,背景,android,true 来源: https://blog.csdn.net/weixin_43820591/article/details/115730901