• 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;
                    }
                }
    	}
    
  • 相关阅读:
    开源blog搬家工具
    嵌入式语言Lua
    ChangeMan Version Manager Workstation 8.1 command line quick check in/out
    Mssql合并列值(三个关系表合并)
    心得——学习中做笔记应该做到哪
    MFC Dialog 透明渐变
    【转】SSDT&Shadow Hook的实现,完整代码。可编译
    ssdt 表结构及hook的一般理解
    <转>ssdt hook 源码
    【转】_declspec(naked) 使用
  • 原文地址:https://www.cnblogs.com/ljl696/p/7607680.html
Copyright © 2020-2023  润新知