zoukankan      html  css  js  c++  java
  • ViewPager的使用

    ViewPager的使用

    1. 为UI添加 ViewPager后,用户可以左右滑动屏幕,切换查看不同列表的明细页面

    效果图如下,使用ViewPager可以增强用户友好体验

    2.我们需要完成以下任务

    • 创建CrimePagerActivity类
    • 定义包含ViewPager的视图层级结构
    • 在新建的类中关联使用ViewPager及其他Adapter
    • 修改CrimeHolder.onClick()方法

    3.

    • 增加的布局文件,此处使用的支持库版本的
    <android.support.v4.view.ViewPager
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/activity_crime_view_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </android.support.v4.view.ViewPager>
    
    • 对应的ViewPager类
        @Override
        protected void onCreate(Bundle savedInstanceState){
    
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_crime_pager);
        }
    
    • 设置pager Adapter(在开头所创建的类里面写代码)
       //添加以下代码
        private ViewPager mViewPager;
        private List<Crime> mCrimes;
    	@Override
    	protected void onCreate(Bundle savedInstanceState){
            //添加以下代码
    		mViewPager = (ViewPager) findViewById(R.id.activity_crime_view_pager);
    			mCrimes=CrimeLab.get(this).getCrimes();
    			FragmentManager fragmentManager = getSupportFragmentManager();
    			mViewPager.setAdapter(new FragmentStatePagerAdapter(fragmentManager) {
    				@Override
    				public Fragment getItem(int position) {
    					Crime crime=mCrimes.get(position);
    					return CrimeFragment.newInstance(crime.getId());
    				}
    				@Override
    				public int getCount(){
    					return mCrimes.size();
    				}
    			});
    	}
    
    • 整合并配置 我们放弃了之前的普通的代码 所以要把之前的代码加到新的里面
        private static final String EXTRA_CRIME_ID = "com.bignerdranch.android.criminalintent.crime_id";
        private ViewPager mViewPager;//上一个所加代码
        private List<Crime> mCrimes;//上一个所加代码
    
        public static Intent newIntent(Context packageContext, UUID crimeId){
            Intent intent = new Intent(packageContext,CrimePagerActivity.class);
            intent.putExtra(EXTRA_CRIME_ID,crimeId);
            return intent;
        }
        @Override
    	protected void onCreate(Bundle savedInstanceState){
    
    		UUID crimeId=(UUID) getIntent().getSerializableExtra(EXTRA_CRIME_ID);
    	}
    
    • 最后一个,设置初始分页显示项
       
        protected void onCreate(Bundle savedInstanceState){
            //我们在onCrete方法里面添加
        	for(int i=0;i<mCrimes.size();i++){
                    if(mCrimes.get(i).getId().equals(crimeId)){
                        mViewPager.setCurrentItem(i);
                        break;
                    }
                }
    	}
    
  • 相关阅读:
    【JAVA Swing】自定义弹出的无边提醒框(可自动消失)
    java比较器Comparator的简单使用
    BoneCP的简单使用
    鸿蒙的js开发部模式18:鸿蒙的文件上传到python服务器端
    【知识点前情提要】鸿蒙小白入门指南!跟着张荣超老师学鸿蒙
    分布式流转开发常见报错FAQ
    Ability之间或者进程间数据传递之对象(Sequenceable序列化)
    【资源下载】安卓VS鸿蒙第三方件切换宝典 V1.0
    鸿蒙开源第三方组件 ——B站开源弹幕库引擎的迁移(上)
    鸿蒙的js开发部模式17:鸿蒙的系统能力的应用模块
  • 原文地址:https://www.cnblogs.com/ljl696/p/7607680.html
Copyright © 2011-2022 走看看