uni-app 安卓端nvue页面使用waterfall组件 两列布局时排列变成从右到左

uni-app 安卓端nvue页面使用waterfall组件 两列布局时排列变成从右到左

开发环境 版本号 项目创建方式
Windows win10 64 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:win10 64

HBuilderX类型:正式

HBuilderX版本号:3.1.22

手机系统:Android

手机系统版本号:Android 10

手机厂商:小米

手机机型:小米9

页面类型:vue

打包方式:云端

示例代码:

<template>
<view class="content">
<waterfall class="listview" :column-gap="11" :left-gap="16" :right-gap="16" :show-scrollbar="false" column-count="2" :enableBackToTop="true" :scroll-y="true">
<header>
<view class="n-search" >
<view class="search-wrapper" >
<view class="search-inner">
<text class="n-placeholder" >大家都在搜#啦啦啦啦#</text>
</view>
</view>  
</view>  
</header>  
<refresh></refresh>  
<cell class="cell" v-for="(item, index) in lists" >  
  <text class="cell-text">{{index}}</text>  
</cell>  
</waterfall>  
</view>  
</template>  

<script>
export default {
data() {
return {
lists: 30
}
},
onLoad() {  
},
methods: {  

}
}
</script>  

<style>
.content{
flex: 1;
flex-direction: column;
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
}
.listview {
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
/* #ifndef APP-NVUE */
display: flex;
flex-direction: column;
/* #endif */
/* #ifndef MP-ALIPAY */
flex-direction: column;
/* #endif */
justify-content: space-between;
}
.cell{
width: 332rpx;
height: 100rpx;
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
align-items: center;
justify-content: center;
border: 1px solid #000;
}
.cell-text{
font-size: 20px;
}

.n-search{  
padding: 0 32rpx;  
background-color: #F8F8F8;  
}  
.mode2{  
padding: 0;  
}  
.search-inner{  
/* #ifndef APP-NVUE */  
display: flex;  
/* #endif */  
flex-direction: row;  
align-items: center;  
border-radius: 16rpx;  
height: 72rpx;  
padding: 0 20rpx;  
background-color: #fff;  
}  
.n-placeholder{  
color: #C7C7C7;  
font-size: 28rpx;  
line-height: 72rpx;  
margin-left: 8rpx;  
}  

操作步骤:

见示例代码

预期结果:

从左到右排列

实际结果:

见示例代码

bug描述:

nvue 使用waterfall 两列布局时如果列表前有 header 和refresh组件,排列就变成从右到左了

示例图片

示例图片


更多关于uni-app 安卓端nvue页面使用waterfall组件 两列布局时排列变成从右到左的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

这个 waterfall 布局问题是BUG吗 如何解决 Android 的cell默认 从右开始计算的

更多关于uni-app 安卓端nvue页面使用waterfall组件 两列布局时排列变成从右到左的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 nvue 页面中,当 waterfall 组件内同时包含 header 和 refresh 组件时,确实可能出现两列布局从右到左排列的问题。这通常是由于组件层级结构或渲染顺序导致的。

解决方案: 将 header 和 refresh 组件移出 waterfall 组件,改为使用页面级的布局结构。修改后的示例代码如下:

<template>
<view class="content">
  <!-- 将 header 移出 waterfall -->
  <header>
    <view class="n-search">
      <view class="search-wrapper">
        <view class="search-inner">
          <text class="n-placeholder">大家都在搜#啦啦啦啦#</text>
        </view>
      </view>
    </view>
  </header>
  
  <!-- 独立的 waterfall 组件 -->
  <waterfall class="listview" 
    :column-gap="11" 
    :left-gap="16" 
    :right-gap="16" 
    :show-scrollbar="false" 
    column-count="2"
    :enableBackToTop="true" 
    :scroll-y="true">
    <!-- refresh 组件可以保留在 waterfall 内 -->
    <refresh></refresh>
    <cell class="cell" v-for="(item, index) in lists" :key="index">
      <text class="cell-text">{{index}}</text>
    </cell>
  </waterfall>
</view>
</template>
回到顶部