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

在约束布局上,BottomNavigationView高度计算为零

在约束布局上,BottomNavigationView的高度计算为零是指在使用约束布局时,BottomNavigationView的高度没有被正确计算或设置,导致其高度为零。BottomNavigationView是一个在Android开发中常用的视图组件,通常用于底部导航栏的实现。

约束布局是Android中一种强大的布局方式,可以通过定义视图之间的约束关系来实现灵活的布局。通过设置视图的约束条件,可以确保视图在不同屏幕尺寸和方向下都能正确地布局。

当BottomNavigationView的高度计算为零时,可能出现以下情况:

  1. 约束条件错误:可能是在约束布局中没有正确设置BottomNavigationView的约束条件。需要确保BottomNavigationView与其他视图之间的约束关系被正确定义,以便计算出正确的高度。
  2. 错误的高度属性:可能是BottomNavigationView的高度属性设置不正确。在约束布局中,可以通过设置视图的高度属性来控制视图的高度。需要检查BottomNavigationView的高度属性是否正确设置为固定值或者包裹内容。

为了解决BottomNavigationView高度计算为零的问题,可以进行以下操作:

  1. 检查约束条件:仔细检查BottomNavigationView与其他视图之间的约束关系,确保约束条件正确设置。可以使用约束布局的可视化编辑器或者手动编写约束条件来确保视图之间的正确约束。
  2. 检查高度属性:检查BottomNavigationView的高度属性设置是否正确。可以通过设置具体的固定值或者使用包裹内容的方式来设置BottomNavigationView的高度。
  3. 更新布局文件:如果上述步骤都没有解决问题,可以尝试重新编写布局文件,确保BottomNavigationView的约束条件和高度属性正确设置。

腾讯云相关产品推荐:

  • 云原生:腾讯云容器服务(Tencent Kubernetes Engine,TKE),链接:https://cloud.tencent.com/product/tke
  • 数据库:腾讯云数据库(TencentDB),链接:https://cloud.tencent.com/product/cdb
  • 服务器运维:腾讯云云服务器(CVM),链接:https://cloud.tencent.com/product/cvm
  • 网络通信:腾讯云私有网络(Virtual Private Cloud,VPC),链接:https://cloud.tencent.com/product/vpc
  • 网络安全:腾讯云Web应用防火墙(Web Application Firewall,WAF),链接:https://cloud.tencent.com/product/waf
  • 人工智能:腾讯云人工智能开放平台(AI Open Platform),链接:https://cloud.tencent.com/product/ai
  • 移动开发:腾讯云移动应用开发套件(Mobile Development Kit,MDK),链接:https://cloud.tencent.com/product/mdk
  • 存储:腾讯云对象存储(Cloud Object Storage,COS),链接:https://cloud.tencent.com/product/cos
  • 区块链:腾讯云区块链服务(Tencent Blockchain Solution),链接:https://cloud.tencent.com/product/bcs
  • 元宇宙:腾讯云元宇宙平台(Tencent Metaverse),链接:https://cloud.tencent.com/solution/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

听说谷歌Baba更新了 Material UI ...

来瓶哇哈哈,精神抖擞来一波~ 简单回顾 Material Design,是谷歌14年的IO大会上提出的一种新的理念,也被称为新的设计语言(也被称为“原材料设计”),称它为设计语言不为过,但是实际,这仅仅是谷歌提倡的一种新的设计风格...的app:menu属性设置菜单资源; 设置选择监听事件setOnNavigationItemSelectedListener(…)。...那下面按照步骤操作一次: Step 1:布局中添加BottomNavigationView: <com.google.android.material.bottomnavigation.BottomNavigationView...下面着撸起实现: Step 1:搞个布局玩玩 外层使用CoordinatorLayout包裹,底部导航栏采用BottomNavigationView,中间内容区域,很Easy咯~ <?...app:behavior_peekHeight:折叠状态的窥视高度。 app:behavior_skipCollapsed:如果底部表单可隐藏,并且设置true,则表单不会处于折叠状态。

3K20

Android Notes|BottomNavigationView 爱上 Lottie

以前大部分项目底部导航栏关于图片部分的实现,要么两套图 selector 切换,要么通过着色器 tint 进行渲染,总之最后呈现的效果便是点击时两张图静态切换,说 Low 吧,也还凑合,但是总是没那么高大...而关于选中状态切换时,对应标题字体大小发生改变以及导航栏高度,都可以通过 dimens 定义如下解决: 84dp 对于设置角标,也就是右上角小圆点或者对应的数字,可通过获取...mNavigationAnimationList } } 判断是否深色模式我单独提取了一个工具类,Lottie-android 中也有对深色模式的兼容方法: /** * 验证当前是否深色模式...and Configuration.UI_MODE_NIGHT_MASK return flag == Configuration.UI_MODE_NIGHT_YES } Step 4:设置布局

3.7K21

Android开发之漫漫长途 XIII——Fragment最佳实践

Fragment的设计最初也许是为了大屏幕平板设备的需求,不过现在Fragment已经广泛运用到我们普通的手机设备。下图是我们几乎主流App中都能发现的一个功能。 ?...--关于底层布局我这里使用了Github的开源项目--> <com.luseen.luseenbottomnavigation.BottomNavigation.BottomNavigationView...中加载布局文件,该布局文件也非常简单,仅仅定义了一个帧布局布局中包含了一个TextView <?...(bottomNavigationItem4); //底部导航布局设置点击事件 bottomNavigationView.setOnBottomNavigationItemClickListener...Fragment的最佳实践,我们许多主流App中都能看到这种顶部、底部导航的效果,并且在此基础我们探讨了使用Fragment不当的存在性能问题及优化。

1.3K20

Android底部导航——BottomNavigationView+ViewPager+Fragment

Android端的底部导航栏有着一套规范,详情 这篇文章大家带来 1.官方BottomNavigationView的使用方法 2.结合ViewPager、Fragment实现一个流行UI布局!...最终实现效果: 谷歌官方发布BottomNavigationView控件之前我们可以自己组合控件实现,比如LinearLayout + TextView(使用android:drawableTop...+ViewPager+Fragment可以实现流行的布局框架,可以像微信那样左右滑动,也可以像支付宝那样点击切换。...实例化BottomNavigationView后调用一次这行代码即可: BottomNavigationViewHelper.disableShiftMode(bottomNavigationView...禁止滑动时,ViewPager添加setOnTouchListener接口,onTouch下直接消费掉点击事件。

2.4K21

第128期:Flutter的flex布局组件(row 和 column)

具体的值和css中的flex布局属性保持了一致。 Row 组件布局算法流程 Row组件的布局分为六个步骤: 使用无边界的水平约束和传入的垂直约束每个子对象布置一个空或的弹性因子。...如果设置的交叉轴属性stretch,则改用与传入最大高度匹配的紧密垂直约束。 根据弹性系数具有非弹性系数(例如,展开的弹性系数)的子级之间划分剩余的水平空间。...Cloumn 组件布局算法流程 Cloumn组件的布局也分为六个步骤: 使用无边界的垂直约束和传入的水平约束每个子对象布置一个空或的弹性因子。...根据弹性系数具有非弹性系数(的子级之间划分剩余的垂直空间。例如,弹性系数2.0的子级将获得两倍于弹性系数1.0的子级的垂直空间量。...设置Cloumn的高度。Cloumn的高度由mainAxisSize属性确定。如果mainAxisSize属性mainAxisSize.max,则Column的高度传入约束的最大高度

1.3K20

android实现滑屏幕隐藏底部菜单栏的示例

布局代码 这个功能实现起来比较简单,主要利用了CoordinatorLayout的 layout_behavior 的属性。...bottom导航栏这里采用是BottomNavigationView,具体用法不在介绍。...这里主要看一下BottomNavigationView的 app:layout_behavior 属性,该属性是协调布局特有的。...onStartNestedScroll:这个方法主要用于监听协调布局的子view的滚动事件,当此方法返回true,表示要消耗此动作,继而执行下面的 onNestedPreScroll 方法,我们代码中返回的是...如果是的话,就返回true onNestedPreScroll:这个方法就比较简单了,当用户滑的时候,隐藏底部菜单栏,这里使用了动画退出,使用了 ObjectAnimator.ofFloat 方法,第一个是

2.2K31

自定义View:手撸一个带FAB凹槽的底部导航栏

: 导航栏与页面跳转:使用谷歌官方提供的现成组件BottomNavigationView+Navigation组件+Fragment的方式来实现; FAB停靠导航栏:利用协调者布局CoordinatorLayout...: 创建好了带导航栏的Activity后界面默认是这样子的效果: 接下来就是根据需求小细节修修补补了,由于只需要显示两个导航item,另外需要在导航栏的中间给大按钮预留个空位,于是导航栏的menu...考虑到这个按钮需要显示在其他控件的最上层,而且需要以导航栏参照物来确定位置,利用CoordinatorLayout的特性正好可以很方便地实现,于是将整个Activity的布局文件修改如下: //activity_main.xml...只不过这看似挺简单的效果,设计路径和计算相关尺寸大小实践起来还是挺麻烦的,废弃了n种方案之后决定出采用以下的一种: 如上图所示,橙色实线底部导航栏的目标形状,canvas的绘制原点默认左上角,整个形状的直线部分路径比较好确定...假设按钮垂直方向上的当前位移距离大小d,当按钮向上运动时导航栏的凹槽应该往中间收缩,收缩过程中保持两旁小圆半径大小和30°夹角不变,这时另中间圆的圆心同步垂直方向上移动-d,动态修改distance

13810

RecyclerView多布局写法,“我的”、“个人中心” 页面经典写法演示

其实多布局都是一个套路,根据类型去引入layout,本文以RecyclerView例,以BaseRecyclerViewAdapterHelper为辅演示多布局的写法。...不想看的直接跳到第3步 布局: <?xml version="1.0" encoding="utf-8"?...的item也选中,BottomNavigationView的item选中的时候让ViewPager切换page 3.Fragment(“我的”页面) 布局,SwipeRefreshLayout(下拉刷新...setOnItemChildClickListener,item里面的子view点击事件 item点击的时候,角标(徽章)消失,然后局部刷新 4.Bean 实体类必须实现MultiItemEntity,设置数据的时候...构造里面addItemType绑定type和layout的关系 public class MultipleItemQuickAdapter extends BaseMultiItemQuickAdapter

91730

Android Studio 4.0+ 中新的 UI 层次结构调试工具

也就是说您需要连接到设备或者模拟器的一个正在运行的可调试应用,有两种方式可以满足该条件: 如果您没有正在运行的进程,那么需要首先连接到一台设备或者启动一个 Android 模拟器实例,并且点击窗口的...请注意,旋转仅在 Android 10 或以上的设备才可以使用。 您也可以选中一个视图,然后右键点击它后,窗口仅显示它的子视图。 同样,您可以仅显示一个所选视图的父视图。...打开 Android Studio 4.0,然后 File 菜单里选择 New Project; 选择 Bottom Navigation Activity,点击 Next 然后点击 Finish;...首先我们可以看到 LinearLayout 里布局了一个工具栏 (toolbar),然后是 navigation host。它下面,您可以看到导航栏位于最下方——看来底部的导航栏被挤出了屏幕。...有可能是 navigation host 的尺寸设置错了,我们尝试把它的高度设置 'wrap_content':

2.3K20

Material Design Android 中的应用

数据 数据是自己本地写的json数据,很是尴尬,然后部署到七牛云。地址是:WeaponInfo 3. 语言 用的语言是之前学的Kotlin。Kotlin学习笔记 4....4、风格背景 文字采用圆角+阴影进行包裹,至于高度和圆角效果因为时间紧迫,没有按照严格规范进行设置,如果对这方面有要求可以参考官网详细的规范要求。 ?...headerLayout: 设置其头布局 menu: 设置菜单布局 详细使用请看我之前写的一篇博客:高大的DrawerLayout 4、Toolbar 整体的架构搭建好了,剩下就是开始每个模块的内容了...5. scroll|exitUntilCollapsed 这个搭配重点在于拉的时候,DependentView会先折叠到最小高度,然后事件全部交给ScrollView。...Android 5.0提供了强大的转场动画,给每个item赋予了生命,跳转时,仿佛每块布局都参与了这次搬迁大运动。

1.2K20

Android Studio 4.0+ 中新的 UI 层次结构调试工具

也就是说您需要连接到设备或者模拟器的一个正在运行的可调试应用,有两种方式可以满足该条件: 如果您没有正在运行的进程,那么需要首先连接到一台设备或者启动一个 Android 模拟器实例,并且点击窗口的...请注意,旋转仅在 Android 10 或以上的设备才可以使用。 您也可以选中一个视图,然后右键点击它后,窗口仅显示它的子视图。 同样,您可以仅显示一个所选视图的父视图。...打开 Android Studio 4.0,然后 File 菜单里选择 New Project; 选择 Bottom Navigation Activity,点击 Next 然后点击 Finish;...首先我们可以看到 LinearLayout 里布局了一个工具栏 (toolbar),然后是 navigation host。它下面,您可以看到导航栏位于最下方——看来底部的导航栏被挤出了屏幕。...有可能是 navigation host 的尺寸设置错了,我们尝试把它的高度设置 'wrap_content':

1.3K10

项目需求讨论 — ConstraintLayout 详细使用教程

正文 控件如何确定自己的位置 1.直接确定控件左上角的坐标 约束布局中,一个控件如何来确定自己的位置呢,有人可能说直接写死让它在界面的(XXX,XXX)位置不就好了么。...Ratio可以设置: 浮点值,表示宽度和高度之间的比率 “宽度:高度”形式的比率 如果两个维都设置MATCH_CONSTRAINT(0dp),则也可以使用比率: 在这种情况下,系统设置满足所有约束条件的最大尺寸并保持指定的宽高比...为了约束一个特定的边,可以根据另一个边的大小来限定宽度或高度: 可以通过比率前面添加字母W(用于限制宽度)或H(用于限制高度),用逗号分隔来指示哪一边应该受到约束: <Button android:layout_width...Guideline不会显示设备(它们被标记为View.GONE),仅用于布局。他们只能在ConstraintLayout中工作。...指引可以是水平的也可以是垂直的: 垂直指南的宽度,它们的ConstraintLayout父项的高度 水平指南的高度,其ConstraintLayout父项的宽度 定位准则有三种不同的方式

1.6K20

安卓Navigation系列——进阶篇

布局中(这里MainActivity的activity_main)中添加BottomNavigationView控件, <?...的类,值这个类的Navigator.Name注解值。...()方法中可以看出,mGraphId就是布局文件中定义NavHostFragment时,通过app:navGraph属性指定的导航资源文件, 跟进setGraph()方法, public void...那么我们是不能在布局文件中通过app:navGraph属性指定自定义的导航资源文件了,只能在布局文件中去掉app:navGraph这个属性,然后添加FixFragmentNavigator的同时,通过代码将导航资源文件设置进去...总结 本篇在上篇的基础,结合BottomNavigationView实现了第一个底部导航切换的实例,然后介绍了这种方式引发的坑,进而通过源码分析了发生这种现象的原因,并给出了解决的思路。

3K30

Flutte部件目录-基本部件(一)

Ink,用于Material绘制装饰,允许InkResponse和InkWell飞溅来绘制它们。 布局部件的目录。...一列的布局分六步进行: 每个孩子设置一个null或个弹性因子(例如那些没有Expanded的部件)和无限制的垂直约束和传入水平约束。...根据弹性因子,弹性因子的子部件(例如扩展)中划分剩余的垂直空间。 例如,弹性系数2.0的子部件将获得弹性系数1.0的子部件的两倍的垂直空间量。...如果mainAxisSize属性MainAxisSize.max,那么Column的高度就是传入约束的最大高度。...如果mainAxisSize属性MainAxisSize.min,那么Column的高度就是子级高度的总和(受传入约束条件的影响)。

7.4K20

Flutter你竟是这样的布局

Widget一个接一个地告诉其孩子约束(每个孩子可能有所不同),然后询问每个孩子想要的大小,然后,Widget将其孩子定位(水平地x轴布局,垂直地y轴布局),最后,该小部件将其自身的大小告诉父级...(当然,原始约束内)。...布局是自上而下,当前widget会有基本的一些约束(来自它的父元素),主要是关于宽高的最小值和最大值 Widget无法知道也不决定其屏幕的位置,因为Widget的父级决定小部件的位置。...另一方面,宽松的约束设置了最大宽度和高度,但使小部件尽可能小。...换句话说,宽松约束的最小宽度和高度都等于: BoxConstraints.loose(Size size) : minWidth = 0.0, maxWidth = size.width

2.3K20

写一个MVVM快速开发框架:谈一谈“单Activity+多Fragment”模式

用Fragment替代Activity 以前大部分时候都是将Activity作为页面,Fragment作为页面中的子页面(当时称之为碎片),基本大部分功能由activity实现,比如老版本的淘宝app...Navigation可以理解以一个管理fragment的容器,容器中各个fragment可以实现任意跳转, 基础使用: 我们需要在布局中创建Fragment容器: <androidx.fragment.app.FragmentContainerView...+BottomNavigationView,切换下面按钮的时候需要切换到不同的moduel页面。...,暂时没有想到太好的解决办法(可以通过之前提到的想外提供接口服务实现),毕竟Navigation就没打算组件化准备。...相关视频: 价值100w+Android项目实战大全:MVVM详解 Android(安卓)开发基础从入门到精通:MVVM实战

1.5K40
领券