zoukankan      html  css  js  c++  java
  • Android Fragment分页显示的实现

    分页显示有两种方式 一种是使用ViewPager 另一种是使用FragmentTransaction

    上代码

    1 FragmentTransaction实现方式

    public class MainActivity extends FragmentActivity implements View.OnClickListener {
    
      private AllPhotosFragment allPhotosFragment;
      private MyAlbumFragment myAlbumFragment;
      private ShareTimeFragment shareTimeFragment;
      private ShotTimeFragment shotTimeFragment;
      private ThemeAlbumFragment themeAlbumFragment;
      private PersonalFragment personalFragment;
    
      private ImageView test1;
      private ImageView test2;
      private ImageView test3;
      
      private FragmentManager fragmentManager;
      
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏
        setContentView(R.layout.activity_main);
    
        test1 = (ImageView) findViewById(R.id.test1);
        test2 = (ImageView) findViewById(R.id.test2);
        test3 = (ImageView) findViewById(R.id.test3);
        test1.setOnClickListener(this);
        test2.setOnClickListener(this);
        test3.setOnClickListener(this);
        
        fragmentManager = getSupportFragmentManager();
    
      }
    
    
    
      @Override
      public void onClick(View v) {
        
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        hideFragments(transaction);
    
        switch (v.getId()) {
          case R.id.test1:
            if (allPhotosFragment == null) {
              allPhotosFragment = new AllPhotosFragment();
              transaction.add(R.id.id_content, allPhotosFragment);
            }else {
              transaction.show(allPhotosFragment);
            }
            break;
          case R.id.test2:
            if (shareTimeFragment == null) {
              shareTimeFragment = new ShareTimeFragment();
              transaction.add(R.id.id_content, shareTimeFragment);
            }else {
              transaction.show(shareTimeFragment);
            }
            break;
          case R.id.test3:
            if (personalFragment == null) {
              personalFragment = new PersonalFragment();
              transaction.add(R.id.id_content, personalFragment);
            }else {
              transaction.show(personalFragment);
            }
            break;
        }
        
        transaction.commit();
    
      }
      
      private void hideFragments(FragmentTransaction transaction) {
        if (allPhotosFragment != null) {
          transaction.hide(allPhotosFragment);
        }
        if (shareTimeFragment != null) {
          transaction.hide(shareTimeFragment);
        }
        if (personalFragment != null) {
          transaction.hide(personalFragment);
        }
      }
      
      
    }
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.testfragment.MainActivity" >
    
        <FrameLayout
            android:id="@+id/id_content"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#FFFFFF" />
    
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:layout_alignParentTop="true"
            android:background="#123456" >
        </RelativeLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:layout_alignParentBottom="true"
            android:background="#123456"
            android:gravity="center_vertical"
            android:orientation="horizontal" >
    
            <ImageView
                android:id="@+id/test1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/test1" />
    
            <ImageView
                android:id="@+id/test2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/test2" />
    
            <ImageView
                android:id="@+id/test3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/test3" />
        </LinearLayout>
    
    </RelativeLayout>
    public class PersonalFragment extends Fragment{
      
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        
        View view = inflater.inflate(R.layout.fragment_test, container, false);
        TextView textView = (TextView) view.findViewById(R.id.tv);
        textView.setText("PersonalFragment");
        return view;
      }
      
    }

    Code见https://github.com/huanyi0723/TestFragmentTransaction

    2 FragmentPagerAdapter实现方式

    public class MainActivity extends FragmentActivity {
      
      private ArrayList<Fragment> fragments;
      private ViewPager viewPager;
      private MyViewPagerAdapter myViewPagerAdapter;
      
      private AllPhotosFragment allPhotosFragment;
      private MyAlbumFragment myAlbumFragment;
      private ShareTimeFragment shareTimeFragment;
      private ShotTimeFragment shotTimeFragment;
      private ThemeAlbumFragment themeAlbumFragment;
      private PersonalFragment personalFragment;
      
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏
        setContentView(R.layout.activity_main);
        
        viewPager = (ViewPager) findViewById(R.id.viewpager);
        
        fragments = new ArrayList<Fragment>();
        allPhotosFragment = new AllPhotosFragment();
        myAlbumFragment = new MyAlbumFragment();
        shareTimeFragment = new ShareTimeFragment();
        shotTimeFragment = new ShotTimeFragment();
        themeAlbumFragment = new ThemeAlbumFragment();
        personalFragment = new PersonalFragment();
        fragments.add(allPhotosFragment);
        fragments.add(myAlbumFragment);
        fragments.add(shareTimeFragment);
        fragments.add(shotTimeFragment);
        fragments.add(themeAlbumFragment);
        fragments.add(personalFragment);
        myViewPagerAdapter = new MyViewPagerAdapter(getSupportFragmentManager(), fragments);
        
        viewPager.setAdapter(myViewPagerAdapter);
        viewPager.setCurrentItem(0);
      }
      
    }
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.testfragment.MainActivity" >
    
        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#FFFFFF" />
        
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:layout_alignParentTop="true"
            android:background="#123456" >
        </RelativeLayout>
    
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:layout_alignParentBottom="true"
            android:background="#123456" >
        </RelativeLayout>
    
    </RelativeLayout>
    public class MyViewPagerAdapter extends FragmentPagerAdapter{
      
      private ArrayList<Fragment> fragments;
    
      public MyViewPagerAdapter(FragmentManager fm, ArrayList<Fragment> fragments) {
        super(fm);
        this.fragments = fragments;
      }
    
      @Override
      public Fragment getItem(int arg0) {
        return fragments.get(arg0);
      }
    
      @Override
      public int getCount() {
        return fragments.size();
      }
      
      
    }
    public class AllPhotosFragment extends Fragment {
    
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_test, container, false);
        TextView textView = (TextView) view.findViewById(R.id.tv);
        textView.setText("AllPhotosFragment");
        return view;
      }
      
    }

    Code见https://github.com/huanyi0723/TestFragmentPagerAdapter/

  • 相关阅读:
    修改sharepoint列表样式
    Zend Server 安装与配置图文教程
    安装zendstudio和破解方法及配置svn
    C#索引器
    曝光尚德机构亲身经历请大家不要上当
    不支持PowerShell 2.0版本(don't support PowerShell version 2.0. )
    SharePoint Project Server List 列表CURD操作使用rest api接口
    解决启动SQL Server Management Studio 17时报Cannot find one of more components...的问题
    Project Server2016升级安装问题项目中心无法显示
    Project Server 2016 RestAPI调用测试
  • 原文地址:https://www.cnblogs.com/huanyi0723/p/5233769.html
Copyright © 2011-2022 走看看