Android BottomNavigationView不加icon使text垂直居中,完美解决。

ops/2025/1/19 19:29:07/

这个问题网上千篇一律的设置iconsize为0,labale固定什么的,都没有效果。我的这个基本上所有人用都会有效果。

问题解决之前的效果:垂直方向,文本不居中,看着很难受

问题解决之后:舒服多了

其实很简单,三行代码就解决了,思路就是获取item的paddingtop和paddingbottom,相加除以2,再设置paddingbottom就可以了

个人习惯,解决问题就给出完整的实现方案。

我用的menu来定义每个item信息,就像下面这样

<menu xmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:id="@+id/nav_square"android:title="@string/square" /><itemandroid:id="@+id/nav_friends"android:title="@string/friends" /><itemandroid:id="@+id/nav_release"android:title="@string/release" /><itemandroid:id="@+id/nav_messages"android:title="@string/message" /><itemandroid:id="@+id/nav_profile"android:title="@string/profile" />
</menu> 

主要代码就是下面这个

int paddingTop = mViewBind.navigationView.getItemPaddingTop();
int paddingBottom = mViewBind.navigationView.getItemPaddingBottom();
mViewBind.navigationView.setItemPaddingBottom(DisplayUtil.dp2px(this, (float) (paddingBottom + paddingTop) / 2));

其中DisplayUtils就是一个dp和px的转换工具,大家随便都能搜出来,我这里直接贴上

public static int px2dp(Context context, float px) {final float scale = context.getResources().getDisplayMetrics().density;return (int) (px / scale + 0.5f);
}public static int dp2px(Context context, float dp) {final float scale = context.getResources().getDisplayMetrics().density;return (int) (dp * scale + 0.5f);
}

至此问题完美解决。原创不易,给个点赞


http://www.ppmy.cn/ops/151457.html

相关文章

RabbitMq 基础

文章目录 一、初识 MQ 1.1 同步调用&#xff1a;1.2 异步调用&#xff1a; 二、RabbitMQ三、SpringAMQP 3.1 依赖和配置文件3.2 消息发送和接收&#xff1a; 3.2.1 消息发送&#xff1a;3.2.2 消息接收&#xff1a; 3.3 WorkQueues 模型&#xff1a;3.4 交换机类型&#xff1a…

新星杯-ESP32智能硬件开发--ESP32的I/O组成

本博文内容导读&#x1f4d5;&#x1f389;&#x1f525; ESP32系统的基础外设开发&#xff1a;IO_MUX和GPIO矩阵 IO_MUX和GPIO矩阵 ESP32的I/O组成了与外部世界交互的基础&#xff0c;ESP32芯片有34个物理GPIO引脚。每个引脚都可用作一个通用I/O&#xff0c;或者连接一个内部…

嵌入式我没有解决问题的能力不知道该怎么做,没有这种能力也就没有活着的必要了

如何像程序员一样思考 — 解决问题的经验教训 --- How to think like a programmer — lessons in problem solving 像程序员一样思考——提高解决问题的能力 - 【雨歌】 - 博客园

latin1_swedish_ci(latin1 不支持存储中文、日文、韩文等多字节字符)

文章目录 1、SHOW TABLE STATUS WHERE Name batch_version;2、latin1_swedish_ci使用场景注意事项修改字符集和排序规则修改表的字符集和排序规则修改列的字符集和排序规则修改数据库的默认字符集和排序规则 3、ALTER TABLE batch_version CONVERT TO CHARACTER SET utf8mb4 C…

Python----Python爬虫(Scrapy的应用:CrawlSpider 使用,爬取小说,CrawlSpider版)

一、CrawlSpider 使用 1.1、CrawlSpider CrawSpiders 是 Scrapy 框架中的一个特殊爬虫类&#xff0c;它用于处理需要跟随链接并抓取多个页面的情况。相比于基本的 Spider 类&#xff0c;CrawSpiders 提供了一个更灵活、更强大的方式来定义爬取规则。 在Scrapy中Spider是所有爬…

springboot 项目配置https

当你的前端网页添加了 https 后&#xff0c;那么 由于… 前端调用后端的接口&#xff0c;同样的也需要配置 https。下面以宝塔为例&#xff0c;如何实现&#xff0c;请看下面讲解&#xff1a; 1.准备好 SSL 证书 application.yml源文件&#xff1a; spring:redis:host: 60.20…

自动驾驶汽车目前面临的最大技术挑战是什么?

1. 感知技术的局限性 恶劣天气和复杂环境&#xff1a;当前的传感器在恶劣天气&#xff08;如雨、雾、雪&#xff09;和复杂道路条件下的感知能力仍有待提高。例如&#xff0c;激光雷达在穿透雨雾时的能力有限&#xff0c;易受强光干扰&#xff1b;摄像头在夜间和恶劣天气中的视…

PT2025 单触控双输出 LED 调光IC

1 产品概述 ● PT2025 是一款单键电容式触摸控制 ASIC&#xff0c;支持单通道触摸输入和单路/双路 PWM 输出&#xff0c;可引脚配置4种模式。主要应用于触摸卫浴镜开关盒&#xff0c;具有介质自适应、高抗干扰、宽工作电压范围、灯光无频闪、外围器件少的突出优势。 2 主要特性…