一些疑问
目前项目中使用了您的ResideMenu控件,感觉效果很棒,但是还是有些疑问没有想明白,想和您探讨一下: 1、为什么要在Activity中接管dispatchOnTouch,因为即使不这样,Activity也会将事件分发给底层View,即ResideMenu;不知道这样做有什么其他意义;
2、initvalue中,为什么要把两个scrollview先移除了?有什么必要性么?
@wangsai-silence 非常欢迎探讨 :)
- 去掉 Activity 的 dispatchOnTouch 后,在 Activity 缩小后,你会发现 Activity 缩小的 View 以外的区域无法使用滑动去开启/关闭菜单,所以只有接管整个 Activity。
- 现在两个菜单(ScrollView)的显示/隐藏方式是通过
addView和removeView实现的,为了将两个 ScrollView 保持在视图的最顶层,在每次打开菜单时都会addView一下 ScrollView。当然在每次 addView 前再将 ScrollView remove 也可以,我另外一个考虑是非再菜单加载状态下,减少两个 views 的载入,减少视图层复杂性,不过这个想法是否有效,没有专门去做验证。
有什么想法和建议非常欢迎提出。
@SpecialCyCi 感谢回复: 1、这个问题应该不会有吧,我实际测试也没有发现。Activity始终占满了整个屏幕,而ResideMenu则始终占满了Activity的整个部分,所以所有的事件,ResideMenu应该都能接管的到。
2、两个View的嵌套层次都还好,感觉优化的必要性不是很大,但是肯定可以作为一个优化点。
3、在ResideMenu在接管整个View的时候是通过从window上拿到最底层然后接管的,是否可以考虑从android.R,id.content进行接管呢?这样看起来更自然,所有的操作都是在自己的Layout中进行的
- 关于第一个问题,我昨晚测试的时候确实出现了,Android 4.4.2。
- 这个建议值得考虑,当初我写这个库是参考了 SlidingMenu,它也是接管了 DcorView。
不过目前在捣鼓自定义菜单布局,你提到的建议可能会稍晚实现,要是感兴趣也欢迎加入开发哈。
@SpecialCyCi 1、好吧,有机会我找别的手机测试一下,看看是什么原因造成的,你用测试机型是哪一款?
屌丝机华为 3C && Genymotion
@SpecialCyCi 用同事的华为荣耀4x试了试,木有出现你说的问题,不知道什么情况了,我现在在项目里把那个Activity里的dispatchOnTouchEvent的接管去掉了,看看大家的使用情况,有新的反馈会再和你联系,祝一起顺利。
屌丝来袭~不要惊慌,求help!