最近项目中的注册功能时候遇到这么一个案例,困扰我了好一会儿,故此简单分析下期中的来龙去脉,以便加深自己的理解。
1.案例背景
如下图所示,图片有左至右为page1,page2。用户在第一个page,先通过手机号获取验证码;获取到验证码后跳转到输入验证码page。我使用ViewPager+fragment实现这两个页面以及之间的数据交互和页面之间的切换。
2.案例描述、问题推断和处理办法
我在page1,点击ibProtocol或tvProtocol均无响应事件;然而tvNext是有点击事件响应的。经资料查证推断是page2中的vcv的edittext抢占了上述两个控件的焦点。然后尝试在page2不可见的时候隐藏vcv,在page2可见的时候显示vcv,结果证实了我的推断。在page1可见的时候ibProtocol和tvProtocol成功处理了点击事件。
期间我尝试了对page1的xml中设置相应父布局的descendantfocusability属性也无济于事。另外page1中的tvNext始终能够相应点击事件而ibProtocol和tvProtocol不能,大致是它们的位置和page2中的vcv 的y轴方向上位置有重合。究其原因,尚不明确,希望有知道缘由的告知。