帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
13
帖子
0
勋章
140
Y币

[YonStudio] 页面第一次打开抖动

[复制链接]
发表于 2024-4-27 23:32:04
本帖最后由 追赶星辰 于 2024-4-27 23:35 编辑

这是我的一个首页,然后我要向左滑动一点到设备那边,会发现设备那边是白的,不是和首页那样的顶部有背景(实际上是有的),然后点击切换到设备那边的时候会发现页面抖动了一下,也就是从全白变成了有东西。这要怎么解决。
662d1abe5dfcf.png
662d19fb679c2.png
662d1a6616ed6.png
至高吾·尚
0
帖子
2
勋章
1145
Y币
最佳答案
应该是你那个页面有下拉刷新机制,你页面刚开始空白,应该是没有触发获取数据逻辑,导致页面没有加载数据,所以是空屏。后来页面抖动一下,然后有的内容,应该就是触发了刷新机制,加载数据,页面渲染了数据内容。 你可以根据我上面的逻辑分析,去调整你的代码逻辑,比如在监听滑动,然后判断是哪个页面,再去使用代码主动调取该页面的刷新机制即可。
0
帖子
2
勋章
1145
Y币
应该是你那个页面有下拉刷新机制,你页面刚开始空白,应该是没有触发获取数据逻辑,导致页面没有加载数据,所以是空屏。后来页面抖动一下,然后有的内容,应该就是触发了刷新机制,加载数据,页面渲染了数据内容。
你可以根据我上面的逻辑分析,去调整你的代码逻辑,比如在监听滑动,然后判断是哪个页面,再去使用代码主动调取该页面的刷新机制即可。
13
帖子
0
勋章
140
Y币
至高吾·尚 · 2024-4-28 08:15应该是你那个页面有下拉刷新机制,你页面刚开始空白,应该是没有触发获取数据逻辑,导致页面没有加载数据,所以是空屏。后来页面抖动一下,然后有的内容,应该就是触发了刷新机制,加载数据,页面渲染了数据内容。
...

设备那边是有下拉刷新机制的,但是其他的页面没有,就是从首页点击其他的三个页面的时候,会有抖动效果(消息和我的页面是没有加载数据的)
13
帖子
0
勋章
140
Y币
至高吾·尚 · 2024-4-28 08:15应该是你那个页面有下拉刷新机制,你页面刚开始空白,应该是没有触发获取数据逻辑,导致页面没有加载数据,所以是空屏。后来页面抖动一下,然后有的内容,应该就是触发了刷新机制,加载数据,页面渲染了数据内容。
...

现在可以了,有时候会卡bug,昨晚不行,今天早上就可以了。设备那个就和您说的一样。其他的没问题了。
13
帖子
0
勋章
140
Y币
至高吾·尚 · 2024-4-28 08:15应该是你那个页面有下拉刷新机制,你页面刚开始空白,应该是没有触发获取数据逻辑,导致页面没有加载数据,所以是空屏。后来页面抖动一下,然后有的内容,应该就是触发了刷新机制,加载数据,页面渲染了数据内容。
...

很奇怪,现在又不行了,这个是我的这个页面的代码
  1. <template>
  2.         <safe-area class="page">
  3.                 <sticky class="top">
  4.                         <text class="top-title">我的</text>
  5.                 </sticky>
  6.                 <view class="main"></view>
  7.         </safe-area>
  8. </template>
  9. <script>
  10. export default {
  11.         name: 'my',
  12.         apiready(){//like created
  13.                 //是否沉浸式显示页面(false的话会显示手机状态栏)
  14.                 api.setFullScreen({
  15.                         fullScreen: false,
  16.                 })
  17.                 //设置状态栏颜色(深色、浅色)
  18.                 api.setStatusBarStyle({
  19.                     style: 'light'
  20.                 });
  21.         },
  22.         data() {
  23.                 return{
  24.                        
  25.                 }
  26.         },
  27.         methods: {
  28.         }
  29. }
  30. </script>
  31. <style>
  32.         .main{
  33.                 /*让白色部分占据剩余区域,父容器的布局默认为纵轴的flex布局,所以这个直接生效*/
  34.                 flex: 1;
  35.                 background-color: white;
  36.         }
  37.         .page {
  38.                 height: 100%;
  39.                 background-color: #25292e;
  40.         }
  41.         .top{
  42.                 height: 2.5rem;
  43.                 text-align: center;
  44.                 justify-content: center;
  45.         }
  46.         .top-title{
  47.                 color: white;
  48.                 font-weight: 500;
  49.         }
  50. </style>
复制代码
13
帖子
0
勋章
140
Y币
至高吾·尚 · 2024-4-28 08:15应该是你那个页面有下拉刷新机制,你页面刚开始空白,应该是没有触发获取数据逻辑,导致页面没有加载数据,所以是空屏。后来页面抖动一下,然后有的内容,应该就是触发了刷新机制,加载数据,页面渲染了数据内容。
...

会不会是safe-area元素的问题,我把safe-area换成view就可以了,但是我想要一种手机状态栏不会覆盖页面内容的效果。怎样做个改动
0
帖子
2
勋章
1145
Y币
你反馈的「又不行了」具体是哪里不OK了,把具体的现象和你期望达到的效果都清楚的描述一下
13
帖子
0
勋章
140
Y币
至高吾·尚 · 2024-4-28 13:28你反馈的「又不行了」具体是哪里不OK了,把具体的现象和你期望达到的效果都清楚的描述一下

就是我希望的是点击“我的”的时候页面不抖动,就这样,但是现在还是会抖动(现象:就是上面的那个标题会闪以下才出现,就是刚开始的全白的,然后出现标题),而且“我的”那个页面是没有数据加载的,代码在上面。这些情况都排除了,还会是什么原因。
0
帖子
2
勋章
1145
Y币
你切换到「我的」页面时,是如何控制页面自动刷新出数据的,那块的逻辑代码贴一下
13
帖子
0
勋章
140
Y币
至高吾·尚 · 2024-4-28 15:53你切换到「我的」页面时,是如何控制页面自动刷新出数据的,那块的逻辑代码贴一下

“我的”页面中没有数据。
代码:
  1. <template>
  2.         <safe-area class="page">
  3.                 <sticky class="top">
  4.                         <text class="top-title">我的</text>
  5.                 </sticky>
  6.                 <view class="main"></view>
  7.         </safe-area>
  8. </template>
  9. <script>
  10. export default {
  11.         name: 'my',
  12.         apiready(){//like created
  13.                 //是否沉浸式显示页面(false的话会显示手机状态栏)
  14.                 api.setFullScreen({
  15.                         fullScreen: false,
  16.                 })
  17.                 //设置状态栏颜色(深色、浅色)
  18.                 api.setStatusBarStyle({
  19.                     style: 'light'
  20.                 });
  21.         },
  22.         data() {
  23.                 return{
  24.                         
  25.                 }
  26.         },
  27.         methods: {
  28.         }
  29. }
  30. </script>
  31. <style>
  32.         .main{
  33.                 /*让白色部分占据剩余区域,父容器的布局默认为纵轴的flex布局,所以这个直接生效*/
  34.                 flex: 1;
  35.                 background-color: white;
  36.         }
  37.         .page {
  38.                 height: 100%;
  39.                 background-color: #25292e;
  40.         }
  41.         .top{
  42.                 height: 2.5rem;
  43.                 text-align: center;
  44.                 justify-content: center;
  45.         }
  46.         .top-title{
  47.                 color: white;
  48.                 font-weight: 500;
  49.         }
  50. </style>
复制代码
12下一页
您需要登录后才可以回帖 登录

本版积分规则