ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android:focusable=“true“ 导致有背景阴影

2021-04-15 17:33:07  阅读:248  来源: 互联网

标签:color focusable 源码 background 背景 android 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有