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

下拉刷新不可用

分类: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

<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上的子页面初始化下拉组件的操作可能
在子页面完全加载完成前就执行了,因此下拉组件初始化失败。

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