您的位置:首页 > 移动开发 > Android开发

Android ViewPager+Fragment 实现画廊效果(一屏多Fragment)

2013-11-07 15:56 260 查看


参照链接 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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: