前言:
众所周知,当我们使用viewpager加载多个布局文件时,尤其是加载多个一样布局文件时,这些布局中的控件的点击事件却监听不到了。
下面提供解决方法:
其实我们加载多个布局那么就应该找到对应布局中的控件,也就是那个List中获取对应的布局文件,再从这个布局文件中获取对应的控件,具体在代码中可以在主页面中完成,也可以在适配器中完成,这里只给出适配器中的解决:
在PagerAdapter中的instantiateItem方法中,如下直接将我的工程中的部分代码拷贝出来了,里面还包括当前页面的点击监听
代码解释:
viewContainter就是Viewpager对应的子VIEW的一个集合
instantiateItem(View v, int postion){}:这个方法返回的就是你填充的view界面,可以跟listview中的getView()对比理解
在这里写switch来找到的对应布局,然后在找到对应的控件,再给控件绑定点击事件。OK.
问题2描述:Viewpager默认第一个页面不显示,当滑动到第二个界面再回到第一个界面时,第一个界面才显示
解决方案:
在onResume()方法中
MyViewPager.setCurrentItem(1);
MyViewPager.setCurrentItem(0);