欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > Android >内容正文

Android

Android中ViewPager+Fragment的基本使用

发布时间:2025/6/15 Android 44 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Android中ViewPager+Fragment的基本使用 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

这几天学习了一下ViewPager+Fragement的基本使用方法并写了个Demo。现将代码和效果图放上。

  • 首先是布局文件

  • ?
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26  <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=".MainActivity" >           <!-- ViewPager组件 -->     <android.support.v4.view.ViewPager         android:id="@+id/viewpager"         android:layout_width="match_parent"         android:layout_height="match_parent">                         <!-- PagerTabStrip是标签页的切换效果 -->         <android.support.v4.view.PagerTabStrip             android:id="@+id/pagertab"               android:layout_width="wrap_content"               android:layout_height="wrap_content"               />                  </android.support.v4.view.ViewPager>       </RelativeLayout> <!--注意事项:          1.这里ViewPager和 PagerTabStrip都要把包名写全了,不然会ClassNotFount         2.API中说:在布局xml把PagerTabStrip当做ViewPager的一个子标签来用,不能拿出来,不然还是会报错     -->

     

     2.MainActivity.java

        MainActivity主要就做了一些加载控件和实例化Fragment的事情,重点要注意的是MyViewPagerAdapter这个适配器的内部类。

    ?
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 package com.xlp.myviewpagerfragment; import java.util.ArrayList; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.PagerTabStrip; import android.support.v4.view.ViewPager; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends FragmentActivity {      private ViewPager m_vp;      // 通过pagerTabStrip可以设置标题的属性      private PagerTabStrip pagerTabStrip;      private Fragment1 mfragment1;      private Fragment2 mfragment2;      private Fragment3 mfragment3;      // 页面列表      private ArrayList<Fragment> fragmentList;      // 标题列表      private ArrayList<String> titleList = new ArrayList<String>();  @Override  protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.activity_main);   initView();  }  public void initView() {       m_vp = (ViewPager) findViewById(R.id.viewpager);       pagerTabStrip = (PagerTabStrip) findViewById(R.id.pagertab);       // 设置下划线颜色       pagerTabStrip.setTabIndicatorColor(getResources().getColor(         android.R.color.holo_green_dark));       pagerTabStrip.setBackgroundColor(getResources().getColor(         android.R.color.holo_red_dark));       mfragment1 = new Fragment1();       mfragment2 = new Fragment2();       mfragment3 = new Fragment3();       fragmentList = new ArrayList<Fragment>();       fragmentList.add(mfragment1);       fragmentList.add(mfragment2);       fragmentList.add(mfragment3);       titleList.add("第一页");       titleList.add("第二页");       titleList.add("第三页");       m_vp.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager()));  }      public class MyViewPagerAdapter extends FragmentPagerAdapter {           public MyViewPagerAdapter(FragmentManager fm) {            super(fm);       }       @Override       public Fragment getItem(int arg0) {            return fragmentList.get(arg0);       }       @Override       public int getCount() {            return fragmentList.size();       }       @Override       public CharSequence getPageTitle(int position) {            // TODO Auto-generated method stub            return titleList.get(position);       }  }      @Override      public boolean onCreateOptionsMenu(Menu menu) {       // Inflate the menu; this adds items to the action bar if it is present.       getMenuInflater().inflate(R.menu.main, menu);       return true;      }      @Override      public boolean onOptionsItemSelected(MenuItem item) {       // Handle action bar item clicks here. The action bar will       // automatically handle clicks on the Home/Up button, so long       // as you specify a parent activity in AndroidManifest.xml.       int id = item.getItemId();       if (id == R.id.action_settings) {        return true;       }       return super.onOptionsItemSelected(item);      } }

     

    3.Fragment1.java

        其中的一个Fragment页面,这里只展示一个,其他写法相同

    ?
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58  package com.xlp.myviewpagerfragment; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class Fragment1 extends Fragment {  private View mMainView;  @Override  public void onCreate(Bundle savedInstanceState) {   // TODO Auto-generated method stub   super.onCreate(savedInstanceState);   Log.i("xlp", "fragment1-->oncreate()");   //动态加载布局文件   LayoutInflater inflater = getActivity().getLayoutInflater();   mMainView = inflater.inflate(R.layout.fragment1,     (ViewGroup) getActivity().findViewById(R.id.viewpager), false);  }  @Override  public View onCreateView(LayoutInflater inflater, ViewGroup container,    Bundle savedInstanceState) {   Log.i("xlp", "fragment1-->onCreateView()");   ViewGroup viewGroup = (ViewGroup) mMainView.getParent();   return mMainView;  }  @Override  public void onDestroy() {   // TODO Auto-generated method stub   super.onDestroy();   Log.v("xlp", "fragment1-->onDestroy()");  }  @Override  public void onPause() {   // TODO Auto-generated method stub   super.onPause();   Log.v("xlp", "fragment1-->onPause()");  }  @Override  public void onResume() {   // TODO Auto-generated method stub   super.onResume();   Log.v("xlp", "fragment1-->onResume()");  }  @Override  public void onStart() {   // TODO Auto-generated method stub   super.onStart();   Log.v("xlp", "fragment1-->onStart()");  }  @Override  public void onStop() {   // TODO Auto-generated method stub   super.onStop();   Log.v("xlp", "fragment1-->onStop()");  } }

     

        4.最后放上效果图

        

    总结

    以上是生活随笔为你收集整理的Android中ViewPager+Fragment的基本使用的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。