首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

安卓。在NavigationView中显示的菜单项中的标题不会垂直居中

安卓(Android)是一种基于Linux内核的开源操作系统,主要用于移动设备和智能手机。它由Google开发并维护,具有广泛的应用和用户群体。

在NavigationView中显示的菜单项中的标题不会垂直居中是因为默认情况下,NavigationView使用了默认的布局样式,其中菜单项的标题是居中对齐的。如果标题没有垂直居中,可能是由于自定义的样式或布局导致的。

要解决这个问题,可以通过自定义样式或布局来实现垂直居中。以下是一种可能的解决方案:

  1. 创建一个名为"custom_navigation_item.xml"的布局文件,用于自定义NavigationView中的菜单项样式。
代码语言:txt
复制
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical">

    <ImageView
        android:id="@+id/menu_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginEnd="16dp"
        android:src="@drawable/menu_icon" />

    <TextView
        android:id="@+id/menu_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:textAppearanceMedium"
        android:textColor="@android:color/black"
        android:gravity="center_vertical" />

</LinearLayout>
  1. 在NavigationView中使用自定义的布局文件。
代码语言:txt
复制
<com.google.android.material.navigation.NavigationView
    android:id="@+id/navigation_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:menu="@menu/navigation_menu"
    app:itemIconTint="@color/navigation_item_icon_color"
    app:itemTextColor="@color/navigation_item_text_color"
    app:headerLayout="@layout/navigation_header"
    app:itemTextAppearance="@style/NavigationItemTextAppearance"
    app:itemBackground="@drawable/navigation_item_background"
    app:itemHorizontalPadding="16dp"
    app:itemVerticalPadding="8dp"
    app:itemIconPadding="8dp"
    app:theme="@style/NavigationViewTheme" />
  1. 在代码中为NavigationView设置自定义的菜单项布局。
代码语言:txt
复制
NavigationView navigationView = findViewById(R.id.navigation_view);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
    @Override
    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        // 处理菜单项点击事件
        return true;
    }
});

Menu menu = navigationView.getMenu();
for (int i = 0; i < menu.size(); i++) {
    MenuItem menuItem = menu.getItem(i);
    menuItem.setActionView(R.layout.custom_navigation_item);
    TextView menuTitle = menuItem.getActionView().findViewById(R.id.menu_title);
    menuTitle.setText(menuItem.getTitle());
}

通过以上步骤,我们可以自定义NavigationView中菜单项的布局,并将标题垂直居中显示。请注意,上述代码中的布局和样式仅供参考,您可以根据实际需求进行调整和修改。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb-for-mysql
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ai
  • 腾讯云存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务(TBCAS):https://cloud.tencent.com/product/tbcs
  • 腾讯云元宇宙解决方案:https://cloud.tencent.com/solution/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android--SVG系统应用

,性能高等优势,谷歌Android5.0引进了SVG,并转化为Vector,Android中指的是Vector Drawable,也就是Android矢量图,可以说Vector就是Android...SVG实现(并不是支持全部SVG语法,现已支持完全足够用了) Vector图像刚发布时候,是只支持Android 5.0+,自从AppCompat 23.2之后,Vector可以使用于Android...lineto(V Y):画垂直线到指定Y坐标位置 C = curveto(C X1,Y1,X2,Y2,ENDX,ENDY):三次贝赛曲线 S = smooth curveto(S...接下来是我们程序员需要注意地方,工程中使用Vector Drawable兼容5.0以下版本方法 1、使用Android Studio 2.2以上版本,gradle版本2.0以上 1.1、gradle...添加 defaultConfig { vectorDrawables.useSupportLibrary = true } 1.2、gradle添加 compile

2.8K20

Java自定义注解开发简单运用

它是JDK1.5及以后版本引入一个特性,与类、接口、枚举是同一个层次。它可以声明包、类、接口、枚举、字段、方法、局部变量、方法参数等前面,用来对这些元素进行说明,注释。...【Override】 java中有很多框架都用到了注解包括javaApi也是,想一些网络框架@GTE,@POST,@PATH等等,java@Override注解是可以被继承,它是可以代码编译期告诉...JVM类之间继承关系,那到底注解是怎么实现呢,首先你要定义一个注解,然后通过反射来实现你所要功能。...通过反射找到控件 以上代码有一些反射基础同学都可以看明白,而且写了注释,最后是页面代码 ?...Activity页面 控件上面写上注释和它ID值,使用控件之前把上下文传递给FindViewByReflection这个类,让它通过反射来遍历所有用到了注释变量,然后为它们赋值,也就是在运行过程

1.6K10
  • 脚本项目开发一些简单应用

    前言 平时项目开发过程,除了业务逻辑编写以外,还有一些其它琐事需要处理,比如资源更新、单元测试、资源压缩等。...由于app适配过程需要经常来回切换分辨率查看不同分辨率下效果,重复性比较高,而且比较繁琐,所以就想到利用脚本来自动切换分辨率。...这其中可能会有问题: 1、视觉同事输出图片名称为了辨别很多都是用中文,我们拷贝到工程时候需要进行改名,改成我们工程需要英文名称; 2、当文件比较多时候,...直接从excel复制到notepad++形式如下: ? 保存成批处理后可直接运行,需要更新资源时候,直接双击pullAllPic.bat即可。几秒钟搞定。...这个参数下不会失真且压缩率比较高。

    2K20

    开发过程RatingBar、Handler以及GPS大型项目中使用【Android】

    RatingBar 点击评分栏后,通过Toast显示当前分数 单击按钮获取当前分数并将其显示TextView上 <RatingBar android:id="@+id/rb_normal...,然后以HTML<em>显示</em>。...关键是<em>在</em>加载页面时使用onload()加载相应<em>的</em>js脚本。js脚本<em>中</em>定义<em>的</em>一个函数是取出传递<em>的</em>对象,获取其中<em>的</em>数据,并通过for循环以单位行<em>的</em>形式打印出来! 有图片和事实。...Handler 当我们<em>的</em>子线程想要修改活动<em>中</em><em>的</em>UI组件时,我们可以创建一个新<em>的</em>Handler对象,并通过该对象向主线程发送信息;我们发送<em>的</em>信息将进入主线程<em>的</em>MessageQueue等待,Looper将按照先入先出<em>的</em>顺序将其取出...<em>安</em><em>卓</em>系统<em>中</em>通常有四种定位方法:GPS定位、WIFI对准、基站定位、AGPS定位(基站+GPS); 本系列教程仅解释GPS定位<em>的</em>基本用法!GPS用于通过与卫星<em>的</em>交互获得设备的当前经度和纬度。

    1.8K10

    CSS实现水平垂直居中1010种方式(史上最全)

    ,通过这个特性可以让子元素居中显示,但绝对定位是基于子元素左上角,期望效果是子元素中心居中显示 为了修正这个问题,可以借助外边距负值,负外边距可以让元素向相反方向定位,通过指定子元素外边距为子元素宽度一半负值...> 复制代码 把box设置为行内元素,通过text-align就可以做到水平居中,但很多同学可能不知道通过通过vertical-align也可以垂直方向做到居中,代码如下 /* 此处引用上面的公共代码...让文字显示变为垂直方向 水平方向 垂直方向 复制代码 .div2 { writing-mode:...123123 复制代码 tabel单元格内容天然就是垂直居中...+ 6+, iOS10.3+ 最近发现很多同学都对css不够重视,这其实是不正确,比如下面的这么简单问题都有那么多同学不会,我也是很无语 123</

    94420

    CSS实现前端布局更巧妙方案! flex 布局通过使用 margin 实现水平垂直居中以及其他常见前端布局

    在前端开发,实现水平垂直居中一直是个热门话题。...flex-end:子元素交叉轴末端对齐。 center:子元素交叉轴上垂直居中对齐。 baseline:子元素以其文本基线对齐。...它工作原理是: Flexbox 布局,margin: auto; 会根据父容器剩余空间自动调整元素外边距,直到子元素居中。...传统布局,margin: auto; 主要用于水平居中对齐,不适用于垂直居中。因为普通流布局垂直方向是由文档流控制,不支持类似 Flexbox 自动调整行为。...*/ } 相比之下, Flexbox 布局,margin: auto; 具有更多灵活性,可以同时实现水平和垂直居中对齐。

    13010

    是时候开始用C#快速开发移动应用了

    从2015年接触Xamarin到至今已经2个年头,我对Xamarin技能没有长进多少,但它却已经足够成熟到跨平台移动开发工具占有一席之地。...因为整个UI层几乎是和原生Android开发一模一样,所以如果原来做过Android开发又懂C#,那用Xamarin来开发程序几乎是没有什么学习成本 。...Google遵循MD设计风格重构了自己几个主要APP并发布了DesignSupportLibrary来让大家更好地开发基于这种设计风格APP。...DrawerLayout + NavigationView  图3左侧菜单,主流APP必备,也是只要几行代码就可以了。 ? NavigationView使用上,有两个属性需要注意一下。...注:OnDateSelected这个事件是我们自己声明,而这个声明方法,相信大家不会觉得陌生。

    2.6K60

    逆向:这是一篇逆向基础函数ARM32刨根问底。

    栈帧函数使用? 1. 怎样ARM汇编中去识别和定位出函数 1.使用专门跳转指令。...参数传递时,将所有参数看做是存放在连续内存单元字数据。...r4 -r11:存储函数局部变量,Thumb模式不会使用r8以后寄存器 r12:是内部过程调用暂时寄存器(intra-procedure-call scratch register)。...以上ARM汇编bx前面有再开辟完栈空间后有对应六个ldr指令,表示这个函数有六个参数 ? 4.函数返回值是通过怎样接收存储?...下例栈就是用于存储保存局部变量。 ? ? 栈用于存储返回值 ? ? Str r0,[r7,#12]意思是将返回值R0写入到栈[r7,#12]位置 7. 栈帧函数使用?

    3.5K74

    Android开发笔记(一百三十三)导航视图NavigationView

    NavigationView结构比较简单,用法也不难。因为NavigationViewAndroid5.0后新增design库中提供,所以要先给App工程引用design库。...布局文件中使用NavigationView,可设置以下几个专门属性: app:headerLayout : 指定头部布局资源文件。 app:menu : 指定导航菜单资源文件。...menu_one.xml,结构定义与普通菜单文件基本相同,多出来group节点用于给菜单项分组,不同菜单组之间会显示分隔线。...还提供了以下方法,用于代码操作导航视图: addHeaderView : 添加头部视图。...如果想让菜单图标显示原来面貌,可在代码调用setItemIconTintList方法,将图标色彩设置为null。下面是显示原始菜单图标颜色导航页面截图。 ?

    2.5K40

    移动端全兼容flexbox速成班

    ★重点兼容TIPS: 不要给flexbox里子元素设置“margin:auto”属性,部分机下,它会导致该元素宽度撑开到100%占位 【Demo Link】: https://jsfiddle.net...千万不要以为结束了,flexbox还可以做更多事。例如一直很困扰我们垂直居中”:flexbox可以轻松实现不定宽高,不限数量元素“水平+垂直居中屏幕。...; 将“沿着主轴对齐方式+沿着侧轴对齐方式”设置为居中,无论子元素是什么形态,都可以随时随地“水平垂直居中”了。...使用传统flxed写法总是会给一些机带来无法避免烦人bug。其实只要巧妙利用flexbox转换方向属性,就可以轻松实现这个结构模型了。...3.黄色标注分辨率为Top6热门分辨率,占比超过iOS市场87%,Android市场50%(分辨率太多,剩余50%分辨率占比较为均分零散,故暂不列入必测范围)。

    1.7K90

    移动端全兼容flexbox速成班 - 腾讯ISUX

    ★重点兼容TIPS:  不要给flexbox里子元素设置“margin:auto”属性,部分机下,它会导致该元素宽度撑开到100%占位 ?...千万不要以为结束了,flexbox还可以做更多事。例如一直很困扰我们垂直居中”:flexbox可以轻松实现不定宽高,不限数量元素“水平+垂直居中屏幕。 ?...; 将“沿着主轴对齐方式+沿着侧轴对齐方式”设置为居中,无论子元素是什么形态,都可以随时随地“水平垂直居中”了。...使用传统flxed写法总是会给一些机带来无法避免烦人bug。其实只要巧妙利用flexbox转换方向属性,就可以轻松实现这个结构模型了。...3.黄色标注分辨率为Top6热门分辨率,占比超过iOS市场87%,Android市场50%(分辨率太多,剩余50%分辨率占比较为均分零散,故暂不列入必测范围)。

    1.3K30

    Android 浏览器文本垂直居中问题

    本文作者:IMWeb ShiJianwen 原文出处:IMWeb社区 未经同意,禁止转载 问题描述 开发,我们常使用 line-height 属性来实现文本垂直居中,但是浏览器渲染中有一个常见问题...,就是对于小于12px字体使用 line-height 属性进行垂直居中时候,渲染出来效果并不是文字垂直居中,而是会偏上一些。...可以看到当 font-size 小于 12px 时候,利用 line-height 属性进行垂直居中布局明显是偏上,这里为了避免由于 font-size 是奇数带来偏差,特意把 font-size...解决办法 看起来问题根源在于字体大小小于 12px,所以解决问题可以从这个方向入手,要么改变字体大小,要么换个方式让它垂直居中。 1....总结 查阅了很多资料之后,虽然能够解决这个问题,但导致问题具体原因还是不够明显,只知道是端浏览器渲染问题,再往深一点原因就有点鞭长莫及了,若有同行研究过这个问题,还望不吝赐教哈~

    95820

    ios兼容问题及处理(小程序H5)

    IOS机型margin属性无效问题 问题: 底部footer设置margin属性时候发现真机IOS上无效,微信开发者工具/手机/谷歌iphone/机型皆正常 原因: iOS8后,UIView...垂直居中。...问题 :video 视频格式m3u8,ios里边儿不能播放,但是能正常播放 原因:xxx 解决办法:添加 custom-cache={{cache}} ,data 添加 cache:false.../IOS图片卡顿异形 问题 :上图片会出现卡顿,变形,然后才会显示正常图片大小 原因: image组件默认宽度300px、高度225px 解决办法: 使用image 标签,尽量固定宽高。...键盘弹出异常 问题: ios上键盘弹出会将页面往上顶 显示正常 原因: ios上软键盘会使页面的fixed定位失效。

    7.8K71

    Android 浏览器文本垂直居中问题

    问题描述 开发,我们常使用 line-height 属性来实现文本垂直居中,但是浏览器渲染中有一个常见问题,就是对于小于12px字体使用 line-height 属性进行垂直居中时候,...渲染出来效果并不是文字垂直居中,而是会偏上一些。...可以看到当 font-size 小于 12px 时候,利用 line-height 属性进行垂直居中布局明显是偏上,这里为了避免由于 font-size 是奇数带来偏差,特意把 font-size...解决办法 看起来问题根源在于字体大小小于 12px,所以解决问题可以从这个方向入手,要么改变字体大小,要么换个方式让它垂直居中。 1....总结 查阅了很多资料之后,虽然能够解决这个问题,但导致问题具体原因还是不够明显,只知道是端浏览器渲染问题,再往深一点原因就有点鞭长莫及了,若有同行研究过这个问题,还望不吝赐教哈~

    1.7K60

    Android菜单定义及ActionBar实现

    add()方法四个参数: 第一个参数是groupId,可以用来控制各个菜单项是否同一组。 第二个参数是itemId,也就是每个菜单项Id。...第四个参数是title,对应菜单项标题。 各个菜单项都对应一系列setter方法,顾名思义即可。...xml文件根节点必须是menu; 其中每个item标签定义一个菜单项,并可以通过<item 再定义<menu 方式创建子菜单。 <?...如上图所示带有标题和两个按钮叫做ActionBar。是从3.0开始被介绍使用。系统默认使用ActionBar作为工具栏。ActionBaritem可以显示为两种——按钮和溢出菜单。...也就是说,菜单已经不再是单纯菜单。可以说其是ActionBar一部分。也可以说,其中的菜单项,可以ActionBar作为按钮显示出来(通过设置showAsAction值来实现)。

    1.2K20

    移动端H5页面踩过CSS坑

    1、Android浏览器下line-height垂直居中产生偏离 举例:按钮中使用 line-height 来做垂直居中,但实际字体处于偏上方位置 知乎有网友评论是:这个问题通过css是无法解决,即使解决了也是一种通过微调来实现...线上移动端页面垂直居中我大部分都是这么写,三端表现都很一致。...2、hairline 问题 已知方法: 1、浏览器无法处理 .5px,所以 .5px手机上依然按照 1px 渲染 2、目前 styles/mixins/hairline.less 定义了 hairline...,但是 lib-flexible rem 适配方案平台中1px边框在转化为rem时,andriod webview以及部分低版本ios webview 会看不到 该种情况频繁发生在一个界面有多个...box-shadow: inset 0px -1px 1px -1px #c8c7cc; } 优点:代码量少, 可以满足大部分场景,经过实测,手机上表现不错,未出现缺少线条情况,并且渲染出样式符合

    1.2K40
    领券