Android中Button的默认高度问题

Android 按钮背景被主题色覆盖?彻底搞懂 backgroundTint 与 Button 颜色定制 在 Android 界面开发中,控件外观往往与主题色存在隐式关联,开发者常遇见按钮背景色与设计稿不符、布局预览与真机效果不一致等情况。其背后的关键机制是 backgroundTint 与 Button 控件的交互:系统会在背景 Drawable 上叠加一层依据 colorPrimary 生成的色彩滤镜,导致开发者设置的背景色无法直接呈现。理解这一原理,对掌握控件外观定制、主题样式适配以及排查多设备显示差异具有重要意义。本文依据实际工程中“按钮被染紫”的典型现象,逐步剖析背景着色的工作方式,并系统介绍布局属性 阅读详情

闲来无事,瞅着自己的app不是很顺眼,想把一个经常用到的按钮调得窄一点。


想着是件很简单的事情,这不换一个窄一点的背景图不就行了吗?可是事与愿违,我让UI帮我切了好几张更窄的图放进去,可是完全不起作用,于是我把矛头指向了UI妹子,埋怨了UI妹子一通微笑。然后着手自己写一个shape出来,万万没想到,不管我怎么调整,这个按钮还是那么粗。下面贴出我的Button和XML代码

<Button
        android:textSize="18sp"
        android:textColor="@color/white"
        android:text="完成"
        android:id="@+id/complete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginTop="60dp"
        android:background="@drawable/button_red" />
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- 圆角 -->
    <corners android:radius="5dp" /><!-- 设置圆角半径 -->

    <!-- 大小 -->
    <size android:width="320dp" android:height="5dp"/><!-- 宽度和高度 -->

    <!-- 填充 -->
    <solid  android:color="@color/red"/><!-- 填充的颜色 -->

</shape>

这一定是灵异事件,于是我打开了另一个app求证,果然是灵异事件,另一个app的高度想怎么调就怎么调!但是冷静下来想一想,到底是为什么呢?思前想后发现两个app的主题不一样

<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>
<style name="AppBaseTheme" parent="android:Theme.Light"></style>

果真如此,我把主题换为android:Theme.Light高度就可以随意调整,于是翻了翻Theme.AppCompat.Light.NoActionBar的源码,原来当前主题下Button有默认最小高度和宽度的设置

 <style name="Base.Widget.AppCompat.ActionButton" parent="RtlUnderlay.Widget.AppCompat.ActionButton">
        <item name="android:background">?attr/actionBarItemBackground</item>
        <item name="android:minWidth">@dimen/abc_action_button_min_width_material</item>
        <item name="android:minHeight">@dimen/abc_action_button_min_height_material</item>
        <item name="android:scaleType">center</item>
        <item name="android:gravity">center</item>
        <item name="android:maxLines">2</item>
        <item name="textAllCaps">@bool/abc_config_actionMenuItemAllCaps</item>
    </style>

想要去掉默认限制,只需要设置android.minHeight为0,但是需要一个一个修改Button的属性。另一种方案是修改app的主题,选择以android:Theme开头的主题即可



微信小程序WXSS样式开发实战:rpx适配、样式隔离与踩坑指南 在移动端前端工程中,屏幕适配与样式管理始终是绕不开的核心议题。微信小程序通过WXSS提供了一套以rpx为基准的响应式像素方案——它将屏幕宽度统一划分为750份,让开发者无需手写媒体查询即可实现跨机型等比缩放,同时借助组件样式隔离机制避免样式污染。理解这些底层设计,不仅能大幅提升多端适配效率,还能有效规避按钮默认样式、顶部导航栏高度计算、原生单选框定制等高频问题。无论是从H5迁移过来的前端,还是刚入门的小程序开发者,掌握WXSS的语法边界、动态样式绑定与平台渲染差异,都是构建稳定界面的关键。从rpx适配到样式 阅读详情

相关推荐

形式化方法(Formal Methods)和人工智能(Artificial Intelligence)

一、形式化方法(Formal Methods) ​ 形式化方法最初应用在硬件上,验证硬件的正确性,后面逐渐应用到软件编程中,能够在软件中找到软件的错误,验证软件的安全可靠。形式化方法更加接近离散数学,所以其应用难度非常大,同时学习成本也较高。再加上形式化方法的大多数理论还停留在上个世纪,由于程序越来越复杂,导致形式化方法进行验证需要大量人工和时间,以至于现在绝大部分软件开发人员完全没有考虑过这个方法,甚至没有听说过这个名词。 ​ 形式化方法最新的应用成果是在工业上,比如一些极其重要且对安全性要求极高的领域(

qq_37030400的博客 4004

Android中Button的默认高度是多少

Button的高度写了个比较小的数值,但是不起作用,为啥? 如果app的theme设置了Theme是: <style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar"></style> 则Button是有默认高度的: <style name="Widget.AppCompat.ActionButton" parent="Base.Widget.AppCompat.ActionButton"/&gt

yzpbright的博客 3102

基于 Quest 摄像头数据开发的原理介绍【Unity Meta Quest MR 开发教程】

比如想在识别到的现实物体上叠加虚拟物体,需要知道这个现实物体在 Unity 的世界坐标下的哪个位置,是带有 x,y,z 三个轴的数据的。而 WebCamTexture 捕捉到的图像只是个 2D 的平面,没有三维世界的深度信息,我们通过物体识别算法识别到的物体坐标只是在这个 2D 平面上的一个屏幕坐标,可以理解为 Quest 拍摄了一张照片,我们识别到这张照片上的某个像素点为需要识别的现实物体的中心。是不是看起来比较复杂?Quest 的相机访问功能是在安卓的。

qq_46044366的博客 2104

Android 之 Button 参数(努力z的日记)

左边跟右边,其中Start跟Left的用法类似,同样End跟Right也是一样的。关于第四条声明:学习到现在,感觉没啥大用,也可能是太菜了不知道重要性欢迎大佬教学o.o,作者很谦虚的很好学的。我们看到在我们Design(设计布局界面)拖曳出来的button,脚本文件显示的是这四个框的默认值。,左边跟右边,其中Start跟Left的用法类似,同样End跟Right也是一样的。哔哔歪歪一下 ---------讲的是常用的一些。> 它的主要功能是实现主程序跟脚本文件的绑定,这个id可以设置。

m0_67870744的博客 1695

【张量分解(二)】CP分解

一、CP分解 1.1 定义 CP分解就是将一个张量分解成多个单秩张量的和。例如,给定一个三阶张量X∈RI×J×K\mathcal{X}\in\mathbb{R}^{I\times J\times K}X∈RI×J×K,则CP分解可以写为 X≈∑r=1Rar∘br∘cr\mathcal{X}\approx\sum_{r=1}^{R}\textbf{a}_r\circ\textbf{b}_r\circ...

bqw的博客 2万+

Python爬虫实战:基于Scrapy和Playwright的深交所数据采集

本文将详细介绍如何使用Python最新技术栈(Scrapy框架结合Playwright浏览器自动化)爬取深圳证券交易所(www.szse.cn)的公开数据。文章包含完整项目搭建、反爬策略应对、数据解析存储等全流程实现,并附详细代码示例和性能优化建议。python复制下载# 上市公司基本信息# 财务数据revenue = scrapy.Field() # 营业收入net_profit = scrapy.Field() # 净利润eps = scrapy.Field() # 每股收益。

2201_76125261的博客 949

Android TextView的高度

TextView设置完setMaxLines后,通过TextView.getHeight方法获取的是当前行数的高度,而非文字完全显示的高度。

stven_king的专栏 6041

RDKit | 基于Pytorch和RDKit建立QSAR模型

QSAR 定量构效方法(quantitative structure-activity relationship, QSAR)是应用最为广泛的药物设计方法。所谓定量构效方法就是通过一些数理统计方法建立其一系列化合物的生理活性或某种性质与其物理化学性质之间的定量关系,通过这些定量关系。可以预测化合物的生理活性或某些性质,指导我们设计出具有更高活性的化合物。 早在...

DrugOne 5077

android Button去掉默认高度

想看更多算法题,可以扫描上方二维码关注我微信公众号“数据结构和算法”,截止到目前我已经在公众号中更新了500多道算法题,其中部分已经整理成了pdf文档,截止到目前总共有800多页(并且还会不断的增加),可以在公众号中回复关键字“pdf”即可下载。 在Android中Button有一个默认高度,如果想去掉可以添加下面一行代码 android:minHeight="0dp" ...

数据结构和算法 621

GD32F470移植LWIP协议,PHY芯片DP83848I

也就是说前24位是有规定的,其中48位MAC中的前几位也是有着对应的含义的。2、旧版LWIP(如1.4.1)存在DHCP状态机卡死问题,建议升级至2.1.3+。

m0_61973119的博客 1589

深入解析 Fiori Launchpad Notification:架构、配置与用户体验全景

开发者可继承接口,在注册自研 Provider,利用实例化消息;若想批量推送,可用API (

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 436

【Android开发--新手必看篇】RadioButton 单选框(含高级样式)

Android笔记 ​ ——各类控件的使用(控件)-单选框 【若对该知识点有更多想了解的,欢迎私信博主~~】 单选框:RadioButton 属性: XML样式 说明 layout_width 布局宽度 layout_height 布局高度 text 文本值 textColor 字体颜色 textSize 字体大小 textStyle 字体风格 buttonTint 按钮色调 background 背景 scaleX X轴拉伸比例 scaleY Y轴

江川一梦的博客 6990

最优控制 (Optimal Control) 算法详解及案例分析

最优控制是一种通过优化控制输入,使系统在满足约束条件的情况下达到最优性能的控制方法。其目标是最小化或最大化一个性能指标。

闲人编程的博客 2090

Android Button 默认样式高度问题 能够让按钮样式变小的解决方案

能够让按钮在小的状态下适配 wrap_content //去掉默认的最小高度 默认主题中有 android:minHeight 设定 改成 android:minHeight="0dp"

Keep Learning , Keep Improving ! 1757

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Android Button有默认padding值的元凶!!!

刚给群里的小伙伴实现了一个自定义view,效果图如下当我正准备开心地告诉小伙伴我已经实现好了的时候,这个b没装好哈~~~为了跟小伙伴发的效果图达到几乎相似的效果,于是打算把button按钮样式也给写了(原谅我处女座哈!!)就是控件最下方的那两个按钮,看到这个按钮样式的时候,小伙伴是不是也第一时间想到定义一个shape文件就好了呢,所以我就去定义了一个shape文件:<?xml version="1.

vv_bug 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Android Button有默认padding值的元凶

刚给群里的小伙伴实现了一个自定义view,效果图如下 当我正准备开心地告诉小伙伴我已经实现好了的时候,这个b没装好哈~~~ 为了跟小伙伴发的效果图达到几乎相似的效果,于是打算把button按钮样式也给写了(原谅我处女座哈!!) 就是控件最下方的那两个按钮,看到这个按钮样式的时候,小伙伴是不是也第一时间想到定义一个shape文件就好了呢,所以我就去定义了一个shape文件: <?...

android开发笔记 2689

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android中setHeight不生效的问题

<br />今天做一个界面的作业,要求能自适应不同分辨率和横竖屏,懒得写太多的布局。就直接写好基本的架子,开始用代码获取屏幕的分辨率设置各个组件大概的比例就行,连横竖屏都不用判断。但在实现的过程中发现一个很诡异的问题:Button,继承至TextView,理论上使用setHeight应该是毫无问题的,但在实际使用中却发现setHeight只能设置大于Button默认Height的值,当小于此值的时候就不生效了。如:我现在是竖屏的HVGA模拟器,默认是320*480的,如果使用如下xml<br /> <br

nodie的专栏 1万+

cardview,button遮盖了别的控件。

FrameLayout、RelativeLayout。直觉上,在控件位置重叠时,xml处于底部的控件会出现在上层。 但是CardView,Button这类的控件即便处于xml顶部,仍然会覆盖xml底部的控件。期望: 实际: 原因: CardView这类的控件默认会设置z轴高度来展示阴影。解决:...

hzqaqz的博客 639

[已解决] BageView 在Android 5.0 之后出现了小红点显示在view 的后面的情况

BageView 在Android 5.0 之后出现了小红点显示在view 的后面的情况。 原因分析: 在Android 5.0 之后使用了Material Design。这里面引入了高度的概念,所以如果view 是Button,那么该Button 在未点击的时候默认的是有一个高度的, 参考:http://blog.youkuaiyun.com/rodulf/article/details/685937

Kodulf的专栏 1564

UI布局知识积累

scrollView常见属性:android:fadingEdge:隐藏滚动两边的阴影,但是实际没有看出什么效果。 android:scrollbars:设置滚动条的方向 android:scrollbarThumbVertical:设置垂直滚动条的样式 android:scrollbarStyle:有四个值 insideOverlay、insideInset、outsideOverlay、o

qq_17477507的博客 458

android 按钮边距,安卓button代码初始化默认内边距问题

一般在xml布局文件中设置一个button,如果出现默认内边距,可以通过以下设置来消除默认的内边距:android:padding="0dp"android:minWidth="0dp"android:minHeight="0dp"但是今天需要用代码初始化一个button,理论上设置对应的属性就OK了,那么应该是这样的。Button button = new Button(context);but...

weixin_29006187的博客 2737

Android Button 背景高度被拉伸问题

&lt;Button android:text="我是按钮" android:textColor="@color/white" android:textSize="12sp" android:background="@drawable/bg_bu...

guopeng的博客 2129

android Button背景高度被拉伸问题--解决方案

android Button背景高度被拉伸问题--解决方案 转载:http://www.cnblogs.com/slysky/p/3727588.html 接入第三方SDK后,发现SDK提供的弹窗里,有两个按钮的高度呈被拉伸状态。 而,第三方提供的demo内,这两个按钮均呈正常状态。 对于第一次接触Android的菜鸟来说,这个问题颇为难解。第三方在尝试了几种方法之后,也宣告失败。

libeyond_的专栏 2493

Android常用控件Button

Android常用控件Button

Android应用开发工程师 1253

Android安卓开发基础-Button与ImageButton

介绍安卓控件Button及ImageButton在java文件及xml文件中的使用(主要以Button为例)

weixin_53743049的博客 1168
上一篇: Android实现分享一个广告页面给好友
下一篇: 手把手教你使用Android官方组件Navigation
__Chen
博客等级 码龄10年 9粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值