高仿易信UI之ViewPager+Fragment+ActionBar綜合使用

以前有學習過一些優秀的文章,但是顯示的fragment都是一點點內容,在給fragment填充內容的時候有時候是會報錯的,需要做一些操作,稍後將會提及。

本篇效果圖如下:




描述:

1、本篇重點分析圖中紅線框框內的內容

2、在使用ActionBar的時候經常會出現getActionbar 空指針錯誤,首先應在AndroidManifest.xml  文件中設置 android:minSdkVersion爲11或11以上版本,其次可能需要修改主題(默認是不用修改的)爲:


android:theme="@android:style/Theme.Holo.Light"或android:theme="@android:style/Theme.Light"等


3、可能會出現Fragment不兼容的問題出現,new Fragment 的時候統一導入包就OK,如:android.support.v4.app.Fragment,或者android.app.Fragment;


實現:

1、在main.xml中添加一個Viewpager組件

<android.support.v4.view.ViewPager
         android:id="@+id/viewpager"
         android:layout_width="match_parent"
    android:layout_height="match_parent"
        >        
        </android.support.v4.view.ViewPager>


2、添加ActionBar信息

actionBar = getActionBar();

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

actionBar.addTab(actionBar.newTab().setText(R.string.dialogue).setTabListener(this));
actionBar.addTab(actionBar.newTab().setText(R.string.find).setTabListener(this));
actionBar.addTab(actionBar.newTab().setText(R.string.contact).setTabListener(this));
actionBar.addTab(actionBar.newTab().setText(R.string.me).setTabListener(this));

3、設置ViewPager信息

               viewPager = (ViewPager)findViewById(R.id.viewpager);

viewPager.setAdapter(pagerAdapter);
viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {

@Override
public void onPageSelected(int position) {
// TODO Auto-generated method stub
actionBar.setSelectedNavigationItem(position);
}

});


4、初始化Fragment,在這我導入的包是android.support.v4.app.Fragment,所以在定義以下四個單獨的Fragment類的時候需要導入android.support.v4.app.Fragment,就不會出現兼容性問題了

private void initView() {
frags = new ArrayList<Fragment>();

v1 = new DialogueFragment();
v2 = new FindFragment();
v3 = new ContactFragment();
v4 = new MeFragment();

frags.add(v1);
frags.add(v2);
frags.add(v3);
frags.add(v4);
}

4.1  定義DialogueFragment,要讓Fragment中的內容顯示出來,需要重寫如下構造方法,然後就可以用正常的方式獲取視圖,填充內容等等:

@Override
 public void onActivityCreated(Bundle savedInstanceState) {
 // TODO Auto-generated method stub
  super.onActivityCreated(savedInstanceState);
 }


5、創建FragmentPagerAdapter適配器,提供Fragment

FragmentPagerAdapter pagerAdapter = new FragmentPagerAdapter(getSupportFragmentManager()){

@Override
public Fragment getItem(int position) {
return frags.get(position);
}


@Override
public int getCount() {
// TODO Auto-generated method stub
return frags.size();
}

};



       搞定,詳細代碼整理完後後續會上傳!!!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章