uni-app nvue picker-view-column 高度有问题
uni-app nvue picker-view-column 高度有问题
| 项目信息 | 详细信息 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Windows |
| PC开发环境操作系统版本号 | 11 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.2.3 |
| 手机系统 | Android |
| 手机系统版本号 | Android 9.0 |
| 手机厂商 | 小米 |
| 手机机型 | 米6 |
| 页面类型 | nvue |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
示例代码:
<view class="optionsSelect cloumn" :class="showOption?'show-option':''">
<view class="option-hd row">
<text class="option-btn" @click.stop="closeOption">取消</text>
<text class="title">配送时间</text>
<text class="option-btn" @click.stop="confirmOption">确定</text>
</view>
<view class="option-bd">
<picker-view class="option-pick" v-if="showOption" :value="value" @change="bindChange">
<picker-view-column class="picker-view-column">
<text class="option-item" v-for="(item,index) in timeList">{{item}}</text>
</picker-view-column>
</picker-view>
</view>
</view>
操作步骤:
- 使用picker-view
预期结果:
- 选项高度正常
实际结果:
- 选项高度不正常
bug描述:
- picker-view-column 高度有问题,或者说需要设置多高?
更多关于uni-app nvue picker-view-column 高度有问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
可以查看 hello-uniapp 中该组件是如何设置的
更多关于uni-app nvue picker-view-column 高度有问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
demo里没有nvue示例吧
大哥你回复一下我的提问可以吗???????????????
回复 codecat: 你需要给picker-view下的节点设置高度,picker-view文档中的示例是可以跑到nvue的
回复 DCloud_UNI_LXH: 我知道能跑,项目中正常页面的picker-view没有问题,只是nvue页面有问题,我就是要问一下,nvue中picker-view下的节点高度要设置为多少
回复 DCloud_UNI_LXH: 因为不管设置多少高度,文字都不是垂直居中的,滚动的时候,选项也落不到居中的位置
回复 codecat: 文档写明了:nvue页面子节点未继承 picker-view 的选中框的高度,需要自己设置高度并居中。
回复 DCloud_UNI_LXH: 找到问题了,开始是只给子节点设置了高度,所以高度无效,还需要在indicator-style设置相同的高度
回复 codecat: 所以我说嘛,让你好好看看示例,跟着设置就ok了。我只看问题描述也不好定位问题所在
在 nvue 页面中,picker-view-column 的高度问题通常与样式设置有关。nvue 使用原生渲染,其布局方式与 Vue 页面不同,需要特别注意样式属性。
原因分析:
- nvue 的 Flexbox 布局:nvue 默认使用 Flexbox 布局,且
display: flex是默认值。如果父容器或picker-view-column未设置明确高度,可能导致高度异常。 - picker-view 的固定高度:
picker-view组件在 nvue 中需要显式设置高度,否则其内部列可能无法正常显示。 - 样式作用域:nvue 中部分 CSS 属性不支持(如百分比高度),需使用具体数值或 Flex 布局调整。
解决方案:
-
为
picker-view设置固定高度:
在 nvue 中,建议为picker-view设置明确的高度值(如height: 400rpx),确保内部列能正常渲染。.option-pick { height: 400rpx; } -
检查父容器高度:
确保option-bd等父容器有有效高度(如设置flex: 1或固定值),避免高度塌陷。 -
使用
flex-direction调整布局:
如果picker-view-column内选项未垂直排列,可尝试为列设置flex-direction: column。.picker-view-column { flex-direction: column; } -
避免使用百分比高度:
在 nvue 中,尽量使用rpx或px单位代替百分比,确保高度值被正确解析。
示例代码调整:
<view class="option-bd">
<picker-view class="option-pick" v-if="showOption" :value="value" @change="bindChange">
<picker-view-column class="picker-view-column">
<text class="option-item" v-for="(item,index) in timeList">{{item}}</text>
</picker-view-column>
</picker-view>
</view>
.option-bd {
flex: 1; /* 确保父容器有弹性高度 */
}
.option-pick {
height: 400rpx; /* 固定picker-view高度 */
}
.picker-view-column {
flex-direction: column; /* 确保选项垂直排列 */
}

