【uniapp】小程序开发6:自定义状态栏

一、自定义状态栏

可以设置某个页面的状态栏自定义或者全局状态栏自定义。

这里以首页状态栏为例。

1)pages.json 中配置"navigationStyle": "custom",代码如下:

json 复制代码
{
	"pages": [ 
		{
			"path": "pages/index/index",
			"style": {
				"navigationStyle": "custom",
				"navigationBarTitleText": "首页"
			}
		}
	],
	
	"globalStyle": {
		// 如果要配置全局自定义状态就是下面这行代码
		// "navigationStyle": "custom"
		//...
	}
}

2)增加自定义状态栏组件CustomNavbar.vue

因每台手机的顶部预留高度不一样,需要通过方法uni.getSystemInfoSync() 获取顶部安全区域高度,然后通过样式预留出来。

下面代码通过设置样式 paddingTop: safeAreaInsets?.top + 'px'预留顶部安全高度

html 复制代码
<template>
	<view :style="{ paddingTop: safeAreaInsets?.top + 'px' }">
		<uni-nav-bar shadow :border="false" title="自定义导航栏" leftIcon="arrow-left" leftText="首页">
		</uni-nav-bar>
	</view>
	<uni-search-bar radius="5" placeholder="自动显示隐藏" clearButton="auto" cancelButton="none" @confirm="search" />
</template>

<script setup lang="ts">
const { safeAreaInsets } = uni.getSystemInfoSync()
console.log('safeAreaInsets', safeAreaInsets);

const search = (res: any) => {
	uni.showToast({
		title: '搜索:' + res.value,
		icon: 'none'
	});

}
</script>

<style scoped>
</style>

3)在首页vue页面中使用组件CustomNavbar.vue

html 复制代码
<template>
  <custom-navbar/>
  <view class="content">
    <!-- 其他内容 -->
  </view>
</template>

<script setup lang="ts">
import { ref } from 'vue'
import CustomNavbar from '../components/CustomNavbar.vue';
// ...... //
</script>
相关推荐
༄沐࿆风࿆࿆2 小时前
JavaScript函数完全指南:从基础语法到闭包原理与应用实战
开发语言·javascript
finyouIT3 小时前
锚点实现了点击导航平滑滚动到页面指定位置的三种方法
javascript·css
神奇的代码在哪里5 小时前
AI编程时代,PPT已成为过去,单个HTML文件创造无限可能
javascript·html·powerpoint·ai编程·ppt
Highcharts5 小时前
从 ECharts 平滑迁移 Highcharts的配置映射与踩坑手册
前端·javascript
用户852495071845 小时前
从零打造 Agent 智能体:LLM + Tool + Memory,让大模型真正帮你干活
javascript·后端
大爱编程♡6 小时前
Vue3基础
前端·javascript·vue.js
志尊宝6 小时前
Vue3 环境搭建 + 第一个 HelloVue 项目(零基础入门)
vue.js·node.js·vue·css3
weedsfly6 小时前
防抖与节流:从原理到 React Hook 封装
前端·javascript·面试
甜味弥漫6 小时前
React 从类组件到 Hooks:为什么 Hooks 改变了 React?
前端·javascript·react.js
天蓝色的鱼鱼6 小时前
让 AI 写代码半年后,我发现了几个藏在项目里的安全隐患
前端·javascript·ai编程