二八中医
二八中医
  • 发布:2014-12-17 15:52
  • 更新:2017-09-13 20:59
  • 阅读:4290

下拉刷新不可用

分类:MUI

下拉刷新,采用主页面和子页面嵌套的形式,代码在ios上一切正常,在android设备上下拉不了,原因不明,Mui版本0.8,最新的,android设备试过不止一个型号,应该不是设备问题,求解!

2014-12-17 15:52 负责人:无 分享
已邀请:
nyctoe

nyctoe

父页面加<div class="mui-content"></div>

  • 等烟雨

    请问就在一个页面里下拉刷新可以吗,不分子页面和主页面

    2015-01-13 10:24

tzheng517

tzheng517

建议贴出代码

二八中医

二八中医 (作者)

父页面:
<script>
mui.init({
swipeBack: false,
subpages: [{
id: 'pullrefresh-down-content',
url: 'pullrefresh-down-content.html',
styles: {
top: '48px',
bottom: '0px'
}
}]
});
</script>

子页面:
<script>
mui.init({
swipeBack: false,
pullRefresh: {
container: '#pullrefresh',
down: {
callback: pulldownRefresh
}
}
});

        function pulldownRefresh() {  
            plus.nativeUI.showWaiting();  
            queryDataFlow(function() {  
                mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); //refresh completed  
                plus.nativeUI.closeWaiting();  
            });  
        }  

        mui.plusReady(function() {  
            plus.nativeUI.showWaiting();  
            queryDataFlow(function() {  
                plus.nativeUI.closeWaiting();  
            });  
        });  
    </script>  

这是刷新相关的代码,和官方例子应该是一样的,而且同样的代码在ios上下拉可以正常响应,如有需要完整代码,留个邮箱地址,我发完整代码给你

  • waybi

    安卓上有测试过 ,在webview模式下添加几个子页面,然后全部添加下拉刷新功能,是否正常?求解?

    2014-12-19 19:50

DCloud_UNI_CHB

DCloud_UNI_CHB

@nyctoe 正解,在mui 0.8.0版本,父页面确实需要.mui-content节点,最新的mui 0.9.0版本已兼容该问题。

  • y7

    1.0.0mui 添加不添加mui-content的情况 都下拉不动,我的下拉在首页

    2015-01-13 03:39

二八中医

二八中医 (作者)

试过了,更新0.9.0的Mui,在不添加.mui-content的情况下,可以实现下拉刷新,不过首次加载页面不行,是不是跟我的下拉刷新是在首页有关? 不确定,不过估计可能是代码问题吧

  • DCloud_UNI_CHB

    跟首页应该无关,你再检查一下代码吧,实在解决不了,就在QQ群中找我,把代码发给我看看。

    2014-12-23 11:53

4***@qq.com

4***@qq.com - 112233

<html>

<head>  
    <meta charset="utf-8">  
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />  
    <title>入口页面</title>  
    <link href="css/mui.min.css" rel="stylesheet" />  
    <script src="js/mui.min.js"></script>  
    <script src="js/mui.js"></script>  
</head>  

<body>  
    <div id="refreshContainer" class="mui-content mui-scroll-wrapper"style="width: 100%;height: 100%;">  
      <div class="mui-scroll">  
        <!--数据列表-->  
        <ul class="mui-table-view mui-table-view-chevron">  

        </ul>  
      </div>  
    </div>  

    <script type="text/javascript" charset="utf-8">  
        //mui.init();  
        /*mui.plusReady(function() {  
            mui.openWindow({  
                url: "main1.html",  
                id: "main"  
            });  
        });*/  
        mui.init({  
            swipeBack: false,  
          pullRefresh : {  
            container:"#refreshContainer",//下拉刷新容器标识,querySelector能定位的css选择器均可,比如:id、.class等  
            down : {  
              height:50,//可选,默认50.触发下拉刷新拖动距离,  
              auto: true,//可选,默认false.自动下拉刷新一次  
              contentdown : "下拉可以刷新",//可选,在下拉可刷新状态时,下拉刷新控件上显示的标题内容  
              contentover : "释放立即刷新",//可选,在释放可刷新状态时,下拉刷新控件上显示的标题内容  
              contentrefresh : "正在刷新...",//可选,正在刷新状态时,下拉刷新控件上显示的标题内容  
              callback :pullfreshfunction //必选,刷新函数,根据具体业务来编写,比如通过ajax从服务器获取新数据;  
            }  
          }  

        });  
        function pullfreshfunction() {  

             //业务逻辑代码,比如通过ajax从服务器获取新数据;  
                alert("aaaaa");  
             //注意,加载完新数据后,必须执行如下代码,注意:若为ajax请求,则需将如下代码放置在处理完ajax响应数据之后  
             mui('#refreshContainer').pullRefresh().endPulldownToRefresh();  
        }  
    </script>  
</body>  

</html>

copy官网上的,在Hbudler上可以,在安卓上就不行

Lspring

Lspring -

我也遇到这个问题了,IOS上可以,android上失效。应该是和数据绑定有问题,个人猜在数据没有获取到之前下拉刷新就已经初始化,导致页面没有获取到数据之前就已经绑定了,页面获取到数据后再绘制DOM层,之前绑定的container失效,所以失效。不知道是不是这个问题。
这是官网给的解决方案:
http://ask.dcloud.net.cn/question/1125

二八中医

二八中医 (作者)

setTimeout 确实可以解决这个问题,
后面的调试发现,对存在父子页面的这种情况,
ios和android在父子页面的初始化顺序和速度上都有
差异,这也导致了在页面加载时就执行子页面的下拉
组件初始化的话,ios能及时的加载并完成子页面的下拉初
始化,而在android上,子页面的加载要相对缓慢得多,
因此就会出现下拉组件无效的问题。

简单说,就是android上的子页面初始化下拉组件的操作可能
在子页面完全加载完成前就执行了,因此下拉组件初始化失败。

该问题目前已经被锁定, 无法添加新回复