ViewFilpper实现分页效果
2014-04-28 16:03
246 查看
先贴出来效果图
分页说明:
1)每一页显示七条数据
2)当选中第一项然后再按左键的时候显示前一页,当选中最后一项并且再按右键的时候显示下一页的数据
实现原理(思路):
1)获取总数据条数,并且计算出总页数totalPage
2)为每一页提供一个列数为7的GirdView组件,把七条数据放入GirdView组件中代码说明如下:
简单的说就是每一页是GirdView,而每一页实际的数据都放在了每一页的GirdView里面;
然后通过控制遥控器的左右键调用viewFilpper.showNext()来显示下一个GirdView(里面的七条数据)和viewFlipper.showPrevious();显示前一页的数据即可。
进行翻页的思路如下:
1)定义一个pageIndex变量用来记录当前的页码,监听左右按键的down和up事件,具体的代码如下
当然,如果想实现如下的翻页效果通过修改每页显示的数量就可以了,例如如下图所示的每页显示12个
分页说明:
1)每一页显示七条数据
2)当选中第一项然后再按左键的时候显示前一页,当选中最后一项并且再按右键的时候显示下一页的数据
实现原理(思路):
1)获取总数据条数,并且计算出总页数totalPage
2)为每一页提供一个列数为7的GirdView组件,把七条数据放入GirdView组件中代码说明如下:
简单的说就是每一页是GirdView,而每一页实际的数据都放在了每一页的GirdView里面;
然后通过控制遥控器的左右键调用viewFilpper.showNext()来显示下一个GirdView(里面的七条数据)和viewFlipper.showPrevious();显示前一页的数据即可。
进行翻页的思路如下:
1)定义一个pageIndex变量用来记录当前的页码,监听左右按键的down和up事件,具体的代码如下
@Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) {// 键盘按下事件 switch (keyCode) { case KeyEvent.KEYCODE_DPAD_LEFT: case KeyEvent.KEYCODE_DPAD_RIGHT:// inGvSelected = false; if (viewFlipper.getChildCount() > 0 && pageIndex == viewFlipper.getChildCount() - 1 && gridViews[pageIndex] != null && gridViews[pageIndex].getAdapter().getCount() == 1) { return true; } break; } } else if (event.getAction() == KeyEvent.ACTION_UP) {// 键盘抬起事件 switch (keyCode) { case KeyEvent.KEYCODE_BACK: // cancel(); // exit(); // clearScreen(); break; case KeyEvent.KEYCODE_DPAD_RIGHT: if (pageIndex < viewFlipper.getChildCount() - 1 && !inGvSelected) { inGvSelected = true; viewFlipper.setInAnimation(AnimationUtils.loadAnimation( mContext, R.anim.push_left_in)); viewFlipper.setOutAnimation(AnimationUtils.loadAnimation( mContext, R.anim.push_left_out)); // viewFlipper.getOutAnimation().setAnimationListener(new // PDAnimationListener()); viewFlipper.showNext();// 显示下一页 leftImg.setVisibility(View.VISIBLE); gridViews[pageIndex].requestFocus(); pageIndex++; if (pageIndex == totalPage - 1) {// 当到达最后一页的时候隐藏右边箭头 rightImg.setVisibility(View.INVISIBLE); } /* * if(gridViews[pageIndex] != null) { pdRecomendAdapter = * (ProgramDetailRecommendAdapter * )gridViews[pageIndex].getAdapter(); * gridViews[pageIndex].setAdapter(pdRecomendAdapter); * gridViews[pageIndex].setSelection(0); } */ } break; case KeyEvent.KEYCODE_DPAD_LEFT: if (pageIndex > 0 && !inGvSelected) { inGvSelected = true; pageIndex--; viewFlipper.setInAnimation(AnimationUtils.loadAnimation( mContext, R.anim.push_right_in)); viewFlipper.setOutAnimation(AnimationUtils.loadAnimation( mContext, R.anim.push_right_out)); gridViews[pageIndex].requestFocus(); viewFlipper.showPrevious();// 显示上一页 rightImg.setVisibility(View.VISIBLE); if (pageIndex == 0) {// 第一页的时候,左边的箭头隐藏 leftImg.setVisibility(View.INVISIBLE); } /* * if(gridViews[pageIndex] != null) { * gridViews[pageIndex].setSelection(PAGE_SIZE - 1); } */ } break; } } return false; }
当然,如果想实现如下的翻页效果通过修改每页显示的数量就可以了,例如如下图所示的每页显示12个
相关文章推荐
- ViewFilpper实现TextView广告上滚的效果(一)--入门
- android开发之滑动效果实现图片浏览_ViewFilpper的使用
- Android基于ViewFilpper实现文字LED显示效果示例
- 首页动画效果实现--viewfilpper
- ViewFilpper实现文字LED显示效果
- 关于ViewPager、ViewFilpper、ViewFlow三种实现水平向滑动方式的比较
- android 三种实现水平向滑动方式(ViewPager、ViewFilpper、ViewFlow)的比较
- 关于ViewPager、ViewFilpper、ViewFlow三种实现水平向滑动方式的比较
- ViewFilpper动画切换效果
- 关于ViewPager、ViewFilpper、ViewFlow三种实现水平向滑动方式的比较
- ViewFilpper 实现页面切换
- android 三种实现水平向滑动方式(ViewPager、ViewFilpper、ViewFlow)的比较
- 关于ViewPager、ViewFilpper、ViewFlow三种实现水平向滑动方式的比较
- block代替协议自定义UIScrollView实现分页效果
- Android Recyclerview实现水平分页GridView效果示例
- 关于ViewPager、ViewFilpper、ViewFlow三种实现水平向滑动方式的比较
- UIScrollView实现分页效果
- TabLayout+ViewPager+Fragment实现分页滑动效果
- 滚动CollectionView控制PageControl实现分页浏览的效果
- android 三种实现水平向滑动方式(ViewPager、ViewFilpper、ViewFlow)的比较