你好!我微信号被封,新注册qq号登不上微信没好友。

Bug记录(17)
废话不多说,说多了都是眼泪。
先贴bug再说。
bug说明:这个bug,让我欲罢不能。本来空态页面都已经实现了,我们这边自测都是杠杠的。但到了测试手里。。。原因是他们手机屏幕较短。。。。没办法,出现了就得解决这个问题。
追寻了老久,终于让我发现问题之所在。原来是PullUpToRefreshListView的原因(自己出了问题,就要懂得无限帅锅。嘿嘿)。这里的空态页面,是在整PullUpToRefreshListView的头部里面动态加了一个view,即使用schoolListview.mRefreshableView.addFooterView(emptyView)。问题来了,当高度不够,list会不会自动向下撑那呢。答案是不会,就出现了上面的问题。究其原因,PullUpToRefreshListView是继承自Linearlayout的,而Linearlayout本身就不能自动撑,即高度不够可以向下滑。
解决办法:
第一想法,当然是看能不能借鉴Linearlayout。毕竟可以实现的话,代码不会改很多。很悲催的是Linearlayout的滚动是通过外面套一层srollview。这个也只是在这里想想。因为使用了这个,肯定会和下面的滚动事件其冲突。想到要处理这个。。。头都大了(这个PullUpToRefreshListView由于界面原因,还加了其他东西,像帧布局。唉,担心改了在于他的事件冲突就更得不尝失了)
后来,关注到有数据时的Item是可以自己撑开的。所以啊,下一波的方向就在这里。
功夫不负苦心人,在adpter里的getView加入了判断,瞬间搞定。让我力马全身舒畅。
可bug到这里远远没完。
引出新bug:1.空态页面下拉刷新时,一直显示加载;2.在空态页面,点击上面按钮,再次加载,程序有时就蹦了。
看到这。。。什么感觉也就不具体描述了。
对于问题1加schoolListview.onRefreshComplete();?在哪里呢,在下拉刷新位置和获取数据位置,都是不起作用的。没法了。。。突然,看到上拉的处理。没错,上拉就是加载一会就没了。所以啊,直接copy一下。唯一感觉不妥的地方是,上拉建立了一次网络请求,在空态页这里就不需要这个了,这里浪费了资源,感觉蛮对不起机子的。这里估计是在上拉处理中对显示进行了控制,但具体,还得后续看看。
对于问题2,想了一下。是因为Adpter里面缓存的问题。空态页的View和数据也View,布局肯定不同。这里我对view进行了一次判断,就解决了这个问题。
看到是不是觉得很爽,一点点了。
但bug远远没有终结,还是出现了新的问题。再每次点击后和加载数据显示的间隔了,总会看到上一次数据的部分(上次是第一条,这次是最后一条,搞不懂)。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:31947次
排名:千里之外
原创:50篇
转载:38篇
(1)(1)(2)(4)(1)(9)(4)(2)(1)(1)(3)(1)(7)(19)(9)(3)(3)(2)(15)点击服务器列表后显示的是这样的页面
然后在该页面通过ip查询后,页面变成这样了
有什么办法可以通过ip查询后只更新树,不重新生成一个新的树
下面是我的代码,求各位帮我看看
&sys:message&content=&${message}&/&
&div&id=&content&&class=&row-fluid&&
&div&id=&left&&class=&accordion-group&&
&div&class=&accordion-heading&&
&&&& &a&class=&accordion-toggle&&style=&color:#333;&&服务器列表&i&class=&icon-refresh&pull-right&&onclick=&refreshTree();&&&/i&&/a&
&&&&&/div&
&div&id=&ztree&&class=&ztree&&&/div&
&div&id=&openClose&&class=&close&&&&/div&
&div&id=&right&&style=&padding-left:10&&
&iframe&id=&chartPage&&src=&&&width=&100%&&height=&91%&&frameborder=&0&&&/iframe&
&script&type=&text/javascript&&
var&setting&=&{data:{simpleData:{enable:true,idKey:&id&,pIdKey:&pId&,rootPId:'0'}},
callback:{onClick:function(event,&treeId,&treeNode){ //事件回调
var&id&=&treeNode.id&==&'0'&?&''&:treeNode.
$('#chartPage').attr(&src&,&${ctx}/assets/assetsBaseInfo/monitor?serverSn=&+id+&&serverName=&+treeNode.name);
function&refreshTree(){
/*& //删除节点
$(&.ztree&).remove();
//插入节点
$(&a&).after('&div&id=&ztree&&class=&ztree&&&/div&');&*/
$.getJSON(&${ctx}/assets/assetsBaseInfo/serverTreeData&,function(data){
$.fn.zTree.init($(&#ztree&),&setting,&data).expandAll(true); //展开全部节点
var&treeObj&=&$.fn.zTree.getZTreeObj(&ztree&); //获取id为ztree的Ztree对象
var&nodes&=&treeObj.getNodes(); //获取全部节点
//update&by&nisu&on&
deviceSn&=&&${deviceSn}&;
deviceName&=&&${deviceName}&;
if(deviceSn!=&null&&deviceSn!=&&){
var&node&=&treeObj.getNodeByParam(&id&,deviceSn);
treeObj.selectNode(node);
treeObj.updateNode(node);
$('#chartPage').attr(&src&,&${ctx}/assets/assetsBaseInfo/monitor?serverSn=&+node.id+&&serverName=&+deviceName);
if&(nodes.length&0)&{
treeObj.selectNode(nodes[0]);//单独选中根节点的第一个节点
$('#chartPage').attr(&src&,&${ctx}/assets/assetsBaseInfo/monitor?serverSn=&+nodes[0].id+&&serverName=&+nodes[0].name);
refreshTree();
回复讨论(解决方案)
求个大神解决一下
你为什么查询后要更新树?只需要展开节点就ok了吧
救命啊。救急啊
像3楼说的就挺对啊&为什么要新加个树,直接更新在你点击树的下面不就好了,仔细看看api,估计就一个方法的事儿&div&id=&wrapper&&
{foreach&from=$deal_list&item=&deal&&key=key&name=&deal&&length=&5&&}
&&{if&$deal.warrant&eq&1}
&&&div&&/div&
&&{elseif&$deal.warrant&eq&2}
&&&div&&/div&
&span&style=&&&{$deal.borrow_amount}&/span&
&span&style=&&&{$deal.format}&/span&
{/foreach}
&script&type=&text/javascript&&
refresher.init({
id:&wrapper&,
pullDownAction:Refresh,&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
pullUpAction:Load&
function&Refresh()&{
setTimeout(function&()&{ //&&--&Simulate&network&congestion,&remove&setTimeout&from&production!
var&el,&li,&i;
el&=document.querySelector(&#wrapper&ul&);
//这里写刷新代码
document.getElementById(&wrapper&).querySelector(&.pullDownIcon&).style.display=&none&;
document.getElementById(&wrapper&).querySelector(&.pullDownLabel&).innerHTML=&&img&src='{$TMPL}/images/ok.png'/&刷新成功&;
setTimeout(function&()&{
wrapper.refresh();
document.getElementById(&wrapper&).querySelector(&.pullDownLabel&).innerHTML=&&;
function&Load()&{
setTimeout(function&()&{//&&--&Simulate&network&congestion,&remove&setTimeout&from&production!
var&el,&li,&i;
el&=document.querySelector(&#wrapper&ul&);
for&(i=0;&i&3;&i++)&{
li&=&document.createElement('li');
&&&&&&&&&&&&&&&&&&&&&&&&li.innerHTML='8888888';
el.appendChild(li,&el.childNodes[0]);
wrapper.refresh();
thinkPHP框架&foreach标签&循环读记录
这里我希望实现先读出5条,&滑到底进行上拉动作后再显示接下来的后5条
现在的问题是&&foreach标签里那个length并没有起作用&还是按照后台的limit数显示出来的
然后88888处,那里是放上拉动作后执行的,这里要怎么写才能&读出来后5条。
我把上面&foreach标签包住的部分放到这里面来(是用&li.innerHTML+=追加的)发现无法保持原有的css样式,另外也不知如何跳过之前读出来过的往后读5条
求HTML5&JavaScript&thinkPHP大神
回复讨论(解决方案)
。。求&指教&虽然现在问题很多&不过还是想先把php的东西搞出来
Web领域的大神呢
求结贴了哎&foreach标签的数量只能在后台控制了吗。。
后台保证数据page参数递增,数据返回正确就行了,剩下就是前台和排查问题了。
length不起作用,看下它的foreach标签解析之后的原始文件就知道原因了。
样式不起作用肯定是html没有正确返回。
后台保证数据page参数递增,数据返回正确就行了,剩下就是前台和排查问题了。
length不起作用,看下它的foreach标签解析之后的原始文件就知道原因了。
样式不起作用肯定是html没有正确返回。
foreach还是不行&我用volist了

我要回帖

更多关于 新注册的微信号就封了 的文章

 

随机推荐