• android中viewPager+fragment实现的屏幕左右切换(进阶篇)


    Fragment支持在不同的Activity中使用并且可以处理自己的输入事件以及生命周期方法等。可以看做是一个子Activity。

    先看一下布局:

    复制代码
     1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     tools:context=".ViewPagerActivity" >
     6 
     7     <android.support.v4.view.ViewPager
     8         android:id="@+id/viewpager"
     9         android:layout_width="wrap_content"
    10         android:layout_height="wrap_content"
    11         android:layout_gravity="center" >
    12     </android.support.v4.view.ViewPager>
    13 
    14 </LinearLayout>
    复制代码

    主文件:ViewPagerActivity继承FragmentActivity

    复制代码
     1 package com.example.viewpagerdemo;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 
     6 import android.os.Bundle;
     7 import android.support.v4.app.Fragment;
     8 import android.support.v4.app.FragmentActivity;
     9 import android.support.v4.view.ViewPager;
    10 
    11 import com.example.adapter.fragmentAdapter;
    12 
    13 public class ViewPagerActivity extends FragmentActivity {
    14 
    15     @Override
    16     protected void onCreate(Bundle savedInstanceState) {
    17         super.onCreate(savedInstanceState);
    18         setContentView(R.layout.activity_view_pager);
    19         List<Fragment> fragments = new ArrayList<Fragment>();
    20         for (int i = 0; i < 3; i++) {
    21             Fragment f = new ButtonFragment();
    22             fragments.add(f);
    23         }
    24         ViewPager vp = (ViewPager) findViewById(R.id.viewpager);
    25         fragmentAdapter fa = new fragmentAdapter(getSupportFragmentManager(),
    26                 fragments);
    27         vp.setAdapter(fa);
    28         vp.setCurrentItem(0);
    29     }
    30 }
    复制代码

    新建fragmentAdapter继承FragmentPagerAdapter并未写出实现的方法

    复制代码
     1 package com.example.adapter;
     2 
     3 import java.util.List;
     4 
     5 import android.support.v4.app.Fragment;
     6 import android.support.v4.app.FragmentManager;
     7 import android.support.v4.app.FragmentPagerAdapter;
     8 
     9 public class fragmentAdapter extends FragmentPagerAdapter {
    10     private List<Fragment> fragments;
    11     private FragmentManager fm;
    12 
    13     public fragmentAdapter(FragmentManager fm, List<Fragment> fragments) {
    14         super(fm);
    15         this.fragments = fragments;
    16 
    17     }
    18 
    19     public fragmentAdapter(FragmentManager fm) {
    20         super(fm);
    21         this.fm = fm;
    22     }
    23 
    24     @Override
    25     public Fragment getItem(int arg0) {
    26         return fragments.get(arg0);
    27     }
    28 
    29     @Override
    30     public int getCount() {
    31         return fragments.size();
    32     }
    33 
    34 }
    复制代码

    定义要展示的fragment内容,在这只放一个Button

    复制代码
     1 package com.example.viewpagerdemo;
     2 
     3 import android.os.Bundle;
     4 import android.support.v4.app.Fragment;
     5 import android.view.LayoutInflater;
     6 import android.view.View;
     7 import android.view.ViewGroup;
     8 import android.widget.TextView;
     9 
    10 public class ButtonFragment extends Fragment {11     private View rootView; 12
    13     @Override
    14     public View onCreateView(LayoutInflater inflater, ViewGroup container,
    15             Bundle savedInstanceState) {
    16         rootView = inflater.inflate(R.layout.guide1, container, false);
    17         return rootView;
    18     }
    19 }
    复制代码

    至此实现3个含有Button可以左右切换了

  • 相关阅读:
    wget
    android layout 布局属性
    Android 官方推荐 : DialogFragment 创建对话框
    Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案
    Android Fragment 真正的完全解析
    Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)
    Visual Studio VS2013模块对于SAFESEH 映像是不安全的 怎么办
    PS 图层后面有索引两字怎么办
    PS 如何使用液化工具给人物减肥
    PS 图层后面有索引两字怎么办
  • 原文地址:https://www.cnblogs.com/daishuguang/p/3971873.html
Copyright © 2020-2023  润新知