今天遇到一个这样的需求,登陆的时候分两个角色 而两个角色的登录内容分开。也就是各写各的登录信息。
想到了共用一个布局可是发现共用一个数据处理很麻烦。
所以决定用viewpager来加载两个布局,屏蔽掉滑动的方式来实现。
思路:控制viewpager的事件
DispatchTouchEvent(MotionEvent ev); 事件分发
OnInterceptTouchEvent(MotionEvent ev); 事件拦截
OnTouchEvent(Motion ev); 事件消费
Tab我选用的是第三方的
SlidingTabLayout 功能很强大,喜欢的小伙伴可以去试试。
有了Tab 那么我们就差一个不能滑动的viewpager了
首先我们新写一个自定义的viewpager名字就叫
NoScrollViewPager 一个不能滑动的viewpager
让viewpager 不能滑动无非就是控制事件的消费以及拦截
其他代码不发了,就是继承viewpager 实现父类的基本方法 ,重点发下对事件的处理。
@Override
public boolean onTouchEvent(MotionEvent arg0) {
if (noScroll)
return false;
else
return super.onTouchEvent(arg0);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
if (noScroll)
return false;
else
return super.onInterceptTouchEvent(arg0);
}
这里的noScroll 是我定一个的一个屏蔽滑动的开关。方便以后动态改变是否禁止。
功能很简单,学到的小伙伴点个赞。
我是影子,但是光越亮影子就越深,更能显出光的明亮 -----黑子はボクです