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

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


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值