ViewPager 滚动界面 类似微信布局
来源:互联网 发布:下载办公软件office 编辑:程序博客网 时间:2024/06/05 03:09
今天看了慕课网的ViewPager仿微信布局,收获良多。废话不多说,直接上代码吧。
代码中关键的地方都加了注释
http://download.csdn.net/detail/qq_31060955/9464976 源码
public class MyViewpagerFragment extends Activity implements View.OnClickListener {
private ViewPager mViewPager;private PagerAdapter mPagerAdapter;private List<View> mViews = new ArrayList<>();private LinearLayout mTopWeixin;private LinearLayout mTopFrd;private LinearLayout mTopAddress;private LinearLayout mTopSetting;private ImageButton mWinxinIma;private ImageButton mFrdIma;private ImageButton mAddressIma;private ImageButton mSettingIma;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /**在创建的时候调用,取消自带的顶部栏*/ requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_my_viewpager_fragment); initView(); initEvents();}private void initEvents() { mTopWeixin.setOnClickListener(this); mTopFrd.setOnClickListener(this); mTopAddress.setOnClickListener(this); mTopSetting.setOnClickListener(this); /**每当页面发生更改时,将调用或增量*/ mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { /**获取滚动的当前页面*/ int currentItem = mViewPager.getCurrentItem(); resetImg(); switch (currentItem) { case 0: mWinxinIma.setImageResource(R.drawable.tab_weixin_pressed); break; case 1: mFrdIma.setImageResource(R.drawable.tab_find_frd_pressed); break; case 2: mAddressIma.setImageResource(R.drawable.tab_address_pressed); break; case 3: mSettingIma.setImageResource(R.drawable.tab_settings_pressed); break; } } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } });}private void initView() { mViewPager = (ViewPager) findViewById(R.id.id_viewpager); mTopWeixin = (LinearLayout) findViewById(R.id.id_tab_weixin); mTopFrd = (LinearLayout) findViewById(R.id.id_tab_frd); mTopAddress = (LinearLayout) findViewById(R.id.id_tab_address); mTopSetting = (LinearLayout) findViewById(R.id.id_tab_settings); mWinxinIma = (ImageButton) findViewById(R.id.id_tab_weixin_img); mFrdIma = (ImageButton) findViewById(R.id.id_tab_frd_img); mAddressIma = (ImageButton) findViewById(R.id.id_tab_address_img); mSettingIma = (ImageButton) findViewById(R.id.id_tab_settings_img); /**将布局添加到 Viewpager 中*/ LayoutInflater inflater = LayoutInflater.from(this); View tab01 = inflater.inflate(R.layout.tan01, null); View tab02 = inflater.inflate(R.layout.tan02, null); View tab03 = inflater.inflate(R.layout.tan03, null); View tab04 = inflater.inflate(R.layout.tan04, null); mViews.add(tab01); mViews.add(tab02); mViews.add(tab03); mViews.add(tab04); mPagerAdapter = new PagerAdapter() { /**销毁Item*/ @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(mViews.get(position)); } /**初始化Item*/ @Override public Object instantiateItem(ViewGroup container, int position) { View view = mViews.get(position); container.addView(view); return view; } /**有多少个页面*/ @Override public int getCount() { return mViews.size(); } @Override/**这个我也不知道,要求是这么写的*/ public boolean isViewFromObject(View view, Object object) { return view == object; } }; mViewPager.setAdapter(mPagerAdapter);}@Overridepublic void onClick(View v) { resetImg(); switch (v.getId()){ case R.id.id_tab_weixin: mViewPager.setCurrentItem(0); mWinxinIma.setImageResource(R.drawable.tab_weixin_pressed); break; case R.id.id_tab_frd: mViewPager.setCurrentItem(1); mFrdIma.setImageResource(R.drawable.tab_find_frd_pressed); break; case R.id.id_tab_address: mViewPager.setCurrentItem(2); mAddressIma.setImageResource(R.drawable.tab_address_pressed); break; case R.id.id_tab_settings: mViewPager.setCurrentItem(3); mSettingIma.setImageResource(R.drawable.tab_settings_pressed); break; }}/**图片变暗*/private void resetImg() { mWinxinIma.setImageResource(R.drawable.tab_weixin_normal); mFrdIma.setImageResource(R.drawable.tab_find_frd_normal); mAddressIma.setImageResource(R.drawable.tab_address_normal); mSettingIma.setImageResource(R.drawable.tab_settings_normal);}
}
0 0
- ViewPager 滚动界面 类似微信布局
- ViewPager实现类似广告界面滚动效果
- viewpager+fragment,类似微信
- 类似微信的界面
- ViewPager实现微信界面
- 类似微信的聊天界面ListView
- swift 类似微信朋友圈聊天界面
- ViewPager+RadioGroup实现微信UI界面
- Android底部Tab+ViewPager(微信界面)
- ViewPager+RadioGroup实现微信UI界面
- viewpager+fragmentadapter实现微信界面
- 21、微信 - 主界面布局
- FragmentManager+Fragment实现微信界面布局
- 利用tabhost实现类似QQ、微信界面
- android 实现类似微信滑动切换界面
- iOS原生自定义二维码扫描界面(类似微信)
- 如何实现类似微信的朋友圈界面?
- Qt_QDockwidget_界面布局【类似vs界面】
- JS二级联动
- qt编译运行错误—无法启动此应用程序,因为计算机中丢失XXX.dll
- HDU-1264 Counting Squares(矩形面积并模板)
- 找工作-简历
- 如何在web页面中,实现耗时操作的后台执行?多线程吗?
- ViewPager 滚动界面 类似微信布局
- Android图片缩放
- 211. Add and Search Word - Data structure design LeetCode
- Hive报错整理02
- KETTLE远程执行任务
- jstorm源码分析:提交任务过程
- 找最值
- 设计模式C++学习笔记之十五(Composite组合模式)
- 浅谈面向对象编程之接口