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

首頁 > 系統 > Android > 正文

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

2019-12-12 02:52:21
字體:
來源:轉載
供稿:網友

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> 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 稷山县| 宁陵县| 濮阳市| 喀喇| 长乐市| 邛崃市| 五指山市| 安溪县| 丰台区| 城口县| 大洼县| 吴堡县| 田林县| 苗栗县| 东阿县| 固原市| 夹江县| 永昌县| 驻马店市| 巍山| 巴彦淖尔市| 隆子县| 阳城县| 景宁| 承德县| 临沂市| 招远市| 宝山区| 清原| 淮阳县| 江达县| 铁力市| 金堂县| 澄江县| 平遥县| 巴彦淖尔市| 抚松县| 侯马市| 高雄市| 吐鲁番市| 两当县|