uniapp自定义底部导航栏,解决下拉时候顶部空白的问题

一、背景

最近使用uniapp开发微信小程序,因为使用了自定义的顶部导航栏,所以在ios平台上(Android未测试)测试的时候,下拉的时候会出现整个页面下拉并且顶部留下大片空白的问题

二、任务:解决这个问题

经查阅资料,在这个使用自定义导航栏的页面,首先需要设置

javascript 复制代码
		{
			"path" : "pages/test/index",
			"style" : 
			{
				"navigationBarTitleText" : "原生导航栏",
				"navigationStyle":"custom",
				"disableScroll":true
			}
		}

其中 "disableScroll":true是关键,这样设置下来,可以解决问题,但是整个页面都不能滑动,这显然不合理。所以在内容展示区需要用scroll-view 来包裹,高度需要动态设置,也就是整个页面的高度-自定义导航栏的 高度

javascript 复制代码
	  <scroll-view 
	  scroll-y="true" 
	  class="scrollw" 
	  :style="{height:`calc(100% - ${barheight}px)`}"
	  refresher-enabled
	  :refresher-triggered="refreshStatus"
	  refresher-threshold
	  refresher-default-style="white"
	  refresher-background="#4cd964"
	  @scrolltoupper="handleToUpper"
	  @scrolltolower="handleToLower"
	  @refresherrefresh="handlePullDownRefresh">
	  <view class="content" v-for="i in count" :key="i">
	  	<view class="">
	  		顶部 刷新 {{i}}
	  	</view>
		<view class="bootom">
			底部  {{i}}
		</view>
	
	  </view>
	  <view class="loading" v-if="loading">
	  	努力加载中...
	  </view>
	  <view class="loading" v-else>
	  	已经没有更多了
	  </view>
	  </scroll-view>

通过,@refresherrefresh和@scrolltolower可以实现自定义的下拉刷新和触底加载更多的功能

三、自定义导航栏高度

有两种方式:通过公式:自定义导航栏高度 = 状态栏高度 + 胶囊按钮高度 + (胶囊按钮距离顶部 - 状态栏高度) * 2

一、

二、直接用 const {safeAreaInsets} = uni.getWindowInfo() + 44(44是规定的)

自定义导航栏里的内容padding-top = 胶囊按钮距离顶部的距离,这样能使自定义导航栏里的内容始终跟胶囊按钮对齐

相关推荐
willow1 天前
uniapp实战
uni-app
只会cv的前端攻城狮1 天前
兼容性地狱-Uniapp钉钉小程序环境隔离踩坑实录
前端·uni-app
codingWhat3 天前
小程序里「嵌」H5:一套完整可落地的 WebView 集成方案
前端·uni-app·webview
小时前端4 天前
微信小程序选不了本地文件?用 web-view + H5 一招搞定
前端·微信小程序·uni-app
Mr_li5 天前
给 Vue 开发者的 uni-app 快速指南
vue.js·uni-app
anyup5 天前
🔥2026最推荐的跨平台方案:H5/小程序/App/鸿蒙,一套代码搞定
前端·uni-app·harmonyos
Mintopia6 天前
Vue3 项目如何迁移到 uni-app x:从纯 Web 到多端应用的系统指南
uni-app
Mintopia6 天前
uni-app x 发展前景技术分析:跨端统一的新阶段?
uni-app
不爱说话郭德纲7 天前
告别漫长的HbuilderX云打包排队!uni-app x 安卓本地打包保姆级教程(附白屏、包体积过大排坑指南)
android·前端·uni-app
HashTang8 天前
【AI 编程实战】第 12 篇:从 0 到 1 的回顾 - 项目总结与 AI 协作心得
前端·uni-app·ai编程