国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android Fragment滑動組件ViewPager的實例詳解

2019-10-23 18:28:48
字體:
來源:轉載
供稿:網友

Android Fragment滑動組件ViewPager的實例詳解

1適配器FragmentPagerAdapter的實現

對于FragmentPagerAdapter的派生類,只需要重寫getItem(int)和getCount()就可以了。

public class MyFragmentPagerAdapter extends FragmentPagerAdapter {  private List<Fragment> list;   public MyFragmentPagerAdapter(FragmentManager fm, List<Fragment> list) {     super(fm);     this.list = list;  }  //返回了當前要滑動的View的個數   @Override   public int getCount() {     return list.size();   }   //在getItem(int arg0)中,根據傳來的參數arg0,來返回當前要顯示的fragment  @Override   public Fragment getItem(int arg0) {     return list.get(arg0);   }}

2兩個Fragment類

OrderFragment.java

public class OrderFragment extends Fragment {  //在onCreateView()中返回要顯示的View  @Override  public View onCreateView(LayoutInflater inflater, ViewGroup container,      Bundle savedInstanceState) {    // TODO Auto-generated method stub    View view= inflater.inflate(R.layout.fragment_order, container, false);    //View中控件的操作方法    refresh = view.findViewById(R.id.order_count_refresh);    refresh.setOnClickListener(new OnClickListener() {      @Override      public void onClick(View v) {        //操作邏輯        countStatus();      }    });    return view;  }}

fragment_order.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:background="#ffffff"  android:orientation="vertical" >  <Button android:id="@+id/fragment1_btn"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="show toast"    /></LinearLayout>

MeFragment.java

public class MeFragment extends Fragment {  //在onCreateView()中返回要顯示的View  @Override  public View onCreateView(LayoutInflater inflater, ViewGroup container,      Bundle savedInstanceState) {    // TODO Auto-generated method stub    View view= inflater.inflate(R.layout.fragment_me, container, false);    //View中控件的操作方法    login = view.findViewById(R.id.me_login);    login.setOnClickListener(new OnClickListener() {      @Override      public void onClick(View v) {        startActivity(new Intent(MeFragment.this.getActivity(),            LoginActivity.class));      }    });    return view;  }}

fragment_me.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:background="#ffff00"  android:orientation="vertical" ></LinearLayout>

3主activity實現

public class MainActivity extends FragmentActivity {  private ViewPager mPager;  private List<Fragment> fragmentList;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    mPager = (ViewPager) findViewById(R.id.viewpager);    //初始化fragment    List<Fragment> fragmentList=new ArrayList<Fragment>();    fragmentList.add(new OrderFragment());    fragmentList.add(new MeFragment());    FragAdapter adapter = new FragAdapter(getSupportFragmentManager(), fragments);    //給ViewPager設置適配器    mPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager(), fragmentList));    mPager.setCurrentItem(0);// 設置當前顯示標簽頁為第一頁    //MyOnPageChangeListener()是頁面變化監聽器    mPager.setOnPageChangeListener(new MyOnPageChangeListener());    radioGroup = (RadioGroup) findViewById(R.id.main_tab);    //給radioGroup設置監聽器    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {      @Override      public void onCheckedChanged(RadioGroup group, int checkedId) {        if(checkedId == R.id.tab_me){          mPager.setCurrentItem(INDEX_ME);        }else if(checkedId == R.id.tab_shoujian){          mPager.setCurrentItem(INDEX_SHOUJIAN);        }      }    });  }  //實現頁面變化監聽器OnPageChangeListener  public class MyOnPageChangeListener implements OnPageChangeListener {    @Override    //當頁面在滑動的時候會調用此方法,在滑動被停止之前,此方法會一直得到調用。    /**       * arg0:當前頁面,及你點擊滑動的頁面      * arg1:當前頁面偏移的百分比      *arg2:當前頁面偏移的像素位置      */    public void onPageScrolled(int arg0, float arg1, int arg2) {      // TODO Auto-generated method stub    }    @Override     //當頁面狀態改變的時候調用     /**       * arg0       * 1:表示正在滑動       * 2:表示滑動完畢       * 0:表示什么都沒做,就是停在那       */     public void onPageScrollStateChanged(int arg0) {      // TODO Auto-generated method stub    }    @Override    //頁面跳轉完后調用此方法    /**      * arg0是頁面跳轉完后得到的頁面的Position(位置編號)。       */     public void onPageSelected(int arg0) {      // TODO Auto-generated method stub      switch (arg0) {      case INDEX_ME:        radioGroup.check(R.id.tab_me);        break;      case INDEX_SHOUJIAN:        radioGroup.check(R.id.tab_shoujian);        break;      }    }  }}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>  <RelativeLayout   android:layout_width="fill_parent"   android:layout_height="fill_parent"   android:orientation="vertical"  xmlns:android="http://schemas.android.com/apk/res/android">  <android.support.v4.view.ViewPager     android:id="@+id/viewpager"    android:layout_alignParentTop="true"    android:layout_width="fill_parent"     android:layout_height="match_parent"    android:layout_gravity="center"    android:layout_marginBottom="60dip"    android:flipInterval="30"     android:persistentDrawingCache="animation"/>   <RadioGroup     android:id="@+id/main_tab"     android:orientation="horizontal"     android:layout_width="fill_parent"    android:layout_alignParentBottom="true"    android:layout_height="60dip">     <RadioButton      style="@style/main_tab"      android:id="@+id/tab_shoujian"       <!--圖片在文字的上面-->      android:drawableTop="@drawable/tab_shoujian_selector"      android:layout_height="match_parent"      android:checked="true"       android:text="****" />     <RadioButton      style="@style/main_tab"       android:id="@+id/tab_me"         android:drawableTop="@drawable/tab_me_selector"      android:layout_height="match_parent"       android:text="*" />   </RadioGroup> </RelativeLayout> 

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳信县| 栾川县| 尼木县| 柞水县| 师宗县| 文昌市| 冕宁县| 阿克陶县| 庄浪县| 巴彦淖尔市| 万州区| 资兴市| 乐业县| 土默特左旗| 卓资县| 凤城市| 洞头县| 富阳市| 玉环县| 水富县| 安阳市| 九台市| 永和县| 辉南县| 威信县| 康乐县| 修武县| 灵宝市| 柳江县| 论坛| 阜宁县| 铜梁县| 乌兰浩特市| 原阳县| 鲜城| 丰都县| 天峨县| 乳山市| 巴林右旗| 久治县| 和平县|