requestLayout() improperly called by 出现后的解决方法

requestLayout() improperly called by 的解决方法

以前做的项目

最近需要做功能更新

在手机系统升到6.0以后(不确定是不是6.0才有这个问题)

viewgroup中嵌套的Gridview之类的控件会一直提示 requestLayout() improperly called by 这个错误

导致无法点击GridView

当点击Viewgroup其它按钮(切换到其它页面),再切换回来时,问题没有

研究了一会

发现只要照下面这么干,问题就可以解决

gv.setVisibility(View.GONE);
gv.setVisibility(View.VISIBLE);

别问为什么,能解决问题就是简单粗暴爽!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作者aliouswang,源码FriendRefreshView,微信朋友圈我们都经常用,朋友圈的下拉刷新比较有意思,我们今天将要模仿打造微信朋友圈的下拉刷新控件,当然微信的这种刷新设计可能不是最好的,实际项目中你可以用V4包里面的SwipeRefreshView或者Chris Banes的AndroidPullRerfresh,看产品经理的设计。 思路 我们初步分析下,界面上主要有二个控件,一个彩虹状的圆形LoadingView,一个是ListView,那么我大致可以有下面三个步骤: 第一步:需要自定义一个ViewGroup,把上面的2个控件add进来。 第二步:利用ViewDragHelper处理控件拖动。当ListView处于顶部时,如果继续向下拖动,就拦截触摸事件,将触摸事件传递给ViewDragHelper处理,这里比较关键,主要是是否拦截触摸事件的判断条件要处理好,否则如果ListView的点击和滚动事件被我们拦截了,那就悲剧了。 第三步:在ViewDragHelper的拖动回调方法里面,设置listView和彩虹LoadingView的位置,调用requestLayout。 第四步:手势松开后,开始刷新,LoadingView在固定位置做旋转动画。 第五步:如果设置了onRefreshListener,执行onRefresh接口。 第六步:调用stopRefresh,完成刷新,这一步需要控件使用者手动去调用,控件本身不自动触发。 文/ALIOUS(简书作者) 原文链接:http://www.jianshu.com/p/1ca0caf5fd8b 著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值