参照链接 http://www.trinea.cn/android/viewpager%E5%AE%9E%E7%8E%B0%E7%94%BB%E5%BB%8A%E4%B8%80%E5%B1%8F%E5%A4%9A%E4%B8%AAfragment%E6%95%88%E6%9E%9C/comment-page-1/
1.在ViewPager与其父布局设置属性android:clicpChildren= "false" 不限制子View在父View范围内
<LinearLayout
android:id="@+id/course_main_linearlayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:clipChildren="false"
android:gravity="center" >
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:clipChildren="false" />
</LinearLayout>
这里注意一点,ViewPager的宽度不能设置成父类容器宽度,否则多屏的效果看不到,楼主之前犯了这么一个错误,找了半天BUG..
2.在代码中设置
mViewPager.setOffscreenPageLimit(mViewList.size());
mViewPager.setPageMargin(20);
mViewPager
.setOnPageChangeListener(new MyOnPageChangeListener());
public class MyOnPageChangeListener implements OnPageChangeListener {
@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
if (mLayoutLinearLayout != null) {
mLayoutLinearLayout.invalidate();
}
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageSelected(int arg0) {
}
}
setPageMargin表示设置Fragment之间的间距
setOffscreenPageLimit表示设置缓存,这样可以看到后面的Fragment
这里楼主做了个小测试 把setOffscreenPageLimit设置成1的话 在第一个Fragment可以看到后面的Fragment,而在第二个Fragment则无法看到后面的Fragment了,这里建议设置成list中的size