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

首頁 > 系統 > Android > 正文

Android使用ViewPager實現導航

2019-12-12 03:20:23
字體:
來源:轉載
供稿:網友

首先先了解ViewPager實現的出效果是能夠使視圖左右滑動。

ViewPager在XML文件中的聲明和其他一些控件的聲明有點兒不一樣

而android.support.v4.view是Android界面特殊效果的第三方加載的jar包,能夠向下兼容。

<android.support.v4.view.ViewPager  ...  ...></android.support.v4.view.ViewPager>

加載顯示的頁卡:需要將layout布局文件轉型為View對象

(1)LayoutInflater lf = getLayoutInfalter().from(this);lf.inflate(resource,root);
(2)View.inflate(context,resource,root);PagerTabStrip 和 PagerTitleStrip

看命名也能夠知道,這倆用來設置Title的就像微信主界面底部顯示的目錄(微信、通訊錄、發現、我)一樣,能夠導航用戶所滑到的頁面Title。

<android.support.v4.view.ViewPager  ...> <android.support.v4.view.PagerTabStrip   ...   ...   > </android.support.v4.view.PagerTabStrip></android.support.v4.view.ViewPager><!-- PagerTitleStrip的定義也和PagerTabTitle一樣,在ViewPager中 -->

一般在使用時,二者取一用即可,如果兩者同時使用,PagerTabStrip會失效

當然,PagerTabStrip 和 PagerTitleStrip也通過設置一些屬性來美化導航目錄

private PagerTabStrip tabStrip;      tabStrip = (PagerTabStrip) findViewById(R.id.tabStrip);    tabStrip.setBackgroundColor(Color.GRAY);       tabStrip.setTextColor(Color.BLACK);    tabStrip.setDrawFullUnderline(false);    tabStrip.setTabIndicatorColor(Color.GREEN);

對于ViewPager對應的有三種不同的適配器,所對應的數據源也有所不同

(1)PagerAdapter  ---- 數據源:List<View>

package com.Liuyt.s03_e19_viewpager;import java.util.List;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;public class MyPagerAdapter extends PagerAdapter {  private List<View> viewList;  private List<String> titleList;  public MyPagerAdapter(List<View> viewList, List<String> titleList) {    this.viewList = viewList;    this.titleList = titleList;  }  /*   * 得到頁卡的數量   */  @Override  public int getCount() {    // TODO Auto-generated method stub    return viewList.size();  }  /*   * 判斷View是否屬于Object對象   */  @Override  public boolean isViewFromObject(View arg0, Object arg1) {    // TODO Auto-generated method stub    return arg0 == arg1;  }  /*   * 實例化一個頁卡   */  @Override  public Object instantiateItem(ViewGroup container, int position) {    // TODO Auto-generated method stub    container.addView(viewList.get(position));    return viewList.get(position);  }  /*   * 銷毀一個頁卡   */  @Override  public void destroyItem(ViewGroup container, int position, Object object) {    // TODO Auto-generated method stub    container.removeView(viewList.get(position));  }  /*   * 設置viewPager的標題   */  @Override  public CharSequence getPageTitle(int position) {    // TODO Auto-generated method stub    return titleList.get(position);  }}

(2)FragmentPagerAdapter ---- 數據源:List<Fragment>

package com.Liuyt.s03_e19_viewpager;import java.util.List;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;public class MyFragmentPagerAdapter extends FragmentPagerAdapter{  private List<Fragment>fragList;  private List<String>titleList;  public MyFragmentPagerAdapter(FragmentManager fm,List<Fragment>fragList,List<String>titleList) {    super(fm);    // TODO Auto-generated constructor stub    this.fragList = fragList;    this.titleList = titleList;  }  @Override  public Fragment getItem(int arg0) {    // TODO Auto-generated method stub    return fragList.get(arg0);  }  @Override  public int getCount() {    // TODO Auto-generated method stub    return fragList.size();  }  @Override  public CharSequence getPageTitle(int position) {    // TODO Auto-generated method stub    return titleList.get(position);  }}

(3)FragmentStatePagerAdapter ---- 數據源:List<Fragment>

這兒就不貼代碼了,FragmentStatePagerAdapter的代碼和FragmentPagerAdapter 的代碼差不很多,兩者差別在于一個在滑動之后會調用destroy的方法銷毀頁卡,而另一個并不會對頁卡進行銷毀。

最后是監聽器,ViewPager使用OnPagerChangeListener監聽器來監聽所滑動到的是哪個頁面,中間常用的方法是public void onPagerSelected(int arg0){}

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 谢通门县| 盐边县| 曲阳县| 余江县| 哈巴河县| 集安市| 驻马店市| 海盐县| 来宾市| 西昌市| 禄劝| 合川市| 延安市| 正定县| 湛江市| 金堂县| 呼玛县| 锡林浩特市| 中卫市| 紫云| 克拉玛依市| 留坝县| 义马市| 鄄城县| 和平区| 巫山县| 普定县| 顺平县| 开封县| 宜川县| 米泉市| 锦州市| 平湖市| 濉溪县| 淮安市| 高台县| 德州市| 西丰县| 永丰县| 博野县| 明水县|