其他分享
首页 > 其他分享> > android:focusable=“true“ 导致有背景阴影

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