Android关于Button背景或样式失效问题解决方法
作者:*木易先生* 发布时间:2021-12-28 03:21:06
标签:Android,Button,背景
前言
最近在学习安卓开发的时候遇到了一个问题,使用Android Studio在为Button设置背景颜色的时候发现设置好后却在运行 * 上失效了。经过一番查阅资料后才有了正确的解决办法,相信这是很多初学Android开发的朋友都会遇到的一个问题,希望此篇对大家有所帮助。
问题描述:
使用Android Studio进行安卓开发时Button的背景色一直无法修改,呈现亮紫色(呈现颜色额和主题有关,我的是亮紫色)。
以其中一个Button举例,代码是这样的:
<Button
android:id="@+id/btn_1"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:text="按钮1"
android:textSize="20sp"
android:textColor="#0066FF"
android:backgroundTint="@null"
android:background="#FF0000"/>
正常运行的话第一个Button应该是红色的,但是在 * 上确实这样:
问题原因:
出现该问题的原因主要是因为使用Android Studio 4.1之后的版本进行开发时,创建的项目默认的主题都是Theme.MaterialComponents.DayNight.DarkActionBar
。所有Button都是Material类型的Button,默认使用主题色。
解决方法:
在左侧project栏中找到app/src/main/res/values/themes.xml
将其中的
<style name="Theme.MyApplication" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
修改为:
<style name="Theme.MyApplication" parent="Theme.MaterialComponents.DayNight.DarkActionBar.Bridge">
或Theme.AppCompat下的任意一种主题:
<style name="Theme.MyApplication" parent="Theme.AppCompat.Light">
解决后运行结果:
这时候我们会发现问题已经被完美的解决啦~
后来又学到了一种更为简单的方法,在使用Button时用android.widget.Button代替Button就可以不用那么麻烦的改设置啦,这无疑是一种更好的方法:
将
<Button
android:id="@+id/btn_1"
改为:
<android.widget.Button
android:id="@+id/btn_1"
即可
来源:https://blog.csdn.net/weixin_52089884/article/details/122616834


猜你喜欢
- 一、来源项目中遇到混合动画的情况,每次实现都需要生命一堆属性,让代码变得杂乱,难以维护。参考 iOS 组动画 CAAimationGroup
- 本文实例讲述了C#实现简单屏幕监控的方法。分享给大家供大家参考。具体如下:这是一段C#编写的屏幕监控代码,可以自动对屏幕进行截图,软件自身隐
- 1.申请微信公众号我们要进行微信公众平台的开发,第一步当然是要有公众号了。什么?不知道什么是微信公众号,看来你还要先回炉炼炼了,呵呵。通俗的
- 本文实例讲述了Android基于Intent实现Activity之间数据传递的方法。分享给大家供大家参考,具体如下:MainActivity
- 在c#中怎样调用VC写的OCX控件,主要有两个关键环节两个关键环节:导入ocx控件,创建实例。1 注册ocx:regsvr32.exe al
- 多环境开发我们平常都是在自己的开发环境进行开发,当开发完成后,需要把开发的功能部署到测试环境供测试人员进行测试使用,等测试人员测试通过后,我
- 本文实例讲述了Android编程实现图片背景渐变切换与图层叠加效果。分享给大家供大家参考,具体如下:本例要实现的目的:1.图片背景渐变的切换
- 自定义 webflux 容器配置配置代码@Componentpublic class ContainerConfig extends Rea
- 一、简介SHA-256 是 SHA-2 下细分出的一种算法。截止目前(2023-03)未出现“碰撞”
- cpu是时分(time division)的,操作系统里有很多线程,每个线程的运行时间由cpu决定,cpu会分给每个线程一个时间片,时间片是
- 1.要求输入10个整数,从大到小排序输出输入:2 0 3 -4 8 9 5 1 7 6输出:9 8 7 6 5 3 2 1 0 -4解决方法
- 生命周期速览优先级servlet 的声明周期由 tomcat 服务器自行管辖,程序员无法插手;只要没有通过 url 访问 servlet,那
- 一、直接看效果二、直接上代码1.自定义控件部分package com.susan.project.myapplication;import
- 默认情况下,插件 spring-boot-maven-plugin 会把整个项目打包成一个可运行的Jar包(即所谓的Flat Jar),导致
- 什么是零拷贝?零拷贝(英语: Zero-copy)技术是指计算机执行操作时,CPU不需要先将数据从某处内存复制到另一个特定区域。这种技术通常
- 效果图:后来又出了两篇,也可以看一下Android选择与上传图片之PictureSelector教程Android选择与上传图片之Matis
- JWT可以理解为一个加密的字符串,里面由三部分组成:头部(Header)、负载(Payload)、签名(signature)由base64加
- 1、比较器①比较器的引入a.首先,当我们单一地比较某一种数据类型的数组时,可以直接用Arrays.sort()进行实现b.而当我们同时含有多
- 一. 先来一段代码我们先上一段代码:String str1 = new StringBuilder("你好").appe
- 1、自定义实现该类package com.linmain.dict.handle;import org.apache.ibatis.sess