uni-app 布局遇到的问题

1、头部

先看一遍 导航栏开发指南 ,原生的头部无法满足一些需求比如:插入用户头像点击头像显示侧边栏,如果需要用hello-app中的自定义头像要注意如果设为fixed,组件在父节点占用的位置会变为空,需要修改组件最外层的节点样式,让它一直占用44px。

.uni-navbar{
	width: 100%;
	height: 44px;
	/* #ifdef MP */
		height: 64px;
	/* #endif */
	/* #ifdef APP-PLUS */
		height: calc(44px + var(--status-bar-height));
	/* #endif */
}

使用自定义头部前要把原生的头部去除:

{
	"path" : "pages/formPage/login",
	"style" : {
		"navigationBarTitleText": "登录",
		"navigationStyle": "custom",
		"app-plus": {
			"titleNView": false
		}
	}
}

上面设置后,会发现头部消失了,但是自定义的头部顶到手机的状态栏上了头部顶到最上面
需要再修改uni-nav-bar的样式

.uni-navbar__content {
	display: block;
	position: relative;
	width: 100%;
	background-color: #fff;
	overflow: hidden;
	/* #ifdef MP */
		padding-top: 20px;
	/* #endif */
	/* #ifdef APP-PLUS */
		padding-top: var(--status-bar-height);
	/* #endif */
}

2、底部

uni-app原生的底部不会被侧边栏遮挡,你可以重写一个自定义的底部,但是原生底部有许多有用的接口比如:显示红点和数字、如果不想重写、不想放弃这些接口、又觉得显示侧边栏时显示底部很难看的话可以选择在侧边栏显示时隐藏原生底部。

watch:{
	visible(val){
		//只有小程序和挨批评端会出现drawer遮挡的问题
		// #ifndef H5
		if(val){
			uni.hideTabBar();
		}else{
			uni.showTabBar();
		}
		// #endif
	}
}

3、scroll-view

scroll-view使用100vh要注意原生的组件不包括在100vh中,如果使用了自定义的头部和底部需要计算减去,如果是小程序或者app需要减去手机的状态栏高度。

.tabBar-scroll-y{
	/*
	* 44px:自定义头部高度
	* 20px:小程序手机状态栏高度
	* var(--status-bar-height):app手机状态栏高度
	* */
	height: calc(100vh - 44px);/*H5*/
	/* #ifdef MP */
		height: calc(100vh - 44px - 20px);
	/* #endif */
	/* #ifdef APP-PLUS */
		height: calc(100vh - 44px - var(--status-bar-height));
	/* #endif */
}

4、下拉刷新

{
	"path" : "pages/tabBar/community/community",
	"style" : {
		"navigationBarTitleText": "社区",
		"navigationStyle": "custom",
		"app-plus": {
		"titleNView": false
		},
		"enablePullDownRefresh": true
	}
},

注意scroll-view无法触发实现下拉刷新

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Uni-app 是一个基于 Vue.js 的跨平台开发框架,可以用于开发多个平台的应用程序,包括小程序、H5、App等。在 Uni-app 中,页面布局和普通的 Vue.js 项目类似,可以使用 Vue 的组件和指令来实现。 在 Uni-app 页面布局中,常见的方式有以下几种: 1. 使用 `<template>` 标签来定义页面的结构,可以使用 `<view>` 标签来作为容器来布局页面。例如: ```html <template> <view class="container"> <view class="header">头部内容</view> <view class="content">主要内容</view> <view class="footer">底部内容</view> </view> </template> ``` 2. 使用 CSS 来设置样式,可以在 `<style>` 标签中定义样式。例如: ```html <template> <view class="container"> <view class="header">头部内容</view> <view class="content">主要内容</view> <view class="footer">底部内容</view> </view> </template> <style> .container { display: flex; flex-direction: column; height: 100vh; } .header { height: 50px; background-color: #ccc; } .content { flex: 1; background-color: #f5f5f5; } .footer { height: 50px; background-color: #ccc; } </style> ``` 3. 使用预设的布局组件,Uni-app 提供了一些预设的布局组件,如 `uni-grid`、`uni-list` 等,可以方便地实现常见的布局。例如: ```html <template> <view class="container"> <view class="header">头部内容</view> <view class="content"> <uni-grid> <uni-grid-item>项目1</uni-grid-item> <uni-grid-item>项目2</uni-grid-item> <uni-grid-item>项目3</uni-grid-item> </uni-grid> </view> <view class="footer">底部内容</view> </view> </template> ``` 这只是一些常见的页面布局方式,实际上在 Uni-app 中可以根据需求使用更多的布局方式和组件来实现页面布局。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值