韩国三级高清手机在线版-韩国三级电影久久-韩国三级hd中文字幕一男多女-韩国三级hd中文字幕久久精品-日本精品在线视频-日本精品在线观看视频

大家都知道 Android的ActionBar是在3.0以上才有的,那么在3.0以下呢,google并沒有給我提供在3.0以下支持ActionBar的包,但 是外國的大牛JakeWharton實現了在3.0以下使用ActionBar, JakeWharton這位大牛是 ActionBarSherlock,Android-ViewPagerIndicator ,NineOldAndroids的作者,非常厲害的一個人,Github的關注量超過2.6K,我左側的友情鏈接里面有他的Github的主頁鏈接,有 興趣的朋友可以去follow下他,今天我們使用的是他的開源框架ActionBarSherlock,ActionBarSherlock是讓 Action Bar功能支持2.X后的所有平臺,而且他會自動的判斷是調用原生Action Bar還是使用擴展ActionBar,很多知名的應用也使用這個庫,我之前對ActionBar也不了解,所以就去下了 ActionBarSherlock來好好的了解了解ActionBar的使用

把紅色框框標記的文件導入Eclipse里面,我們可以先看下例子,來了解下ActionBar的一些使用情況

  • 我們新建一個Android工程,叫ViewPagerAndTab,然后指定ActionBarSherlock為ViewPagerAndTab的庫工程,右鍵工程--->Properties

通過上面的幾步我們就指定ActionBarSherlock為ViewPagerAndTab的庫工程,接下來我們就能在3.0以下使用ActionBar,我這里使用的是ActionBar  Tab和ViewPager仿網易新聞,我們看看主要代碼的編寫

1.先看布局文件,里面一個ViewPager,非常簡單

[html] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  

  2.     xmlns:tools="http://schemas.android.com/tools"  

  3.     android:layout_width="match_parent"  

  4.     android:layout_height="match_parent"  

  5.     android:background="@android:color/white">  

  6.       

  7.     <android.support.v4.view.ViewPager      

  8.         android:id="@+id/viewPager"      

  9.         android:layout_width="fill_parent"      

  10.         android:layout_height="wrap_content" />     

  11.   

  12. RelativeLayout>  

2.MainActivity代碼,點擊ActionBar的Tab,ViewPager切換不同的Fragment,滑動ViewPager,選中相對應的ActiionBar Tab

[java] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片

  1. package com.example.viewpagerandtabdemo;  

  2.   

  3. import java.util.ArrayList;  

  4. import java.util.List;  

  5.   

  6. import android.os.Bundle;  

  7. import android.support.v4.app.Fragment;  

  8. import android.support.v4.app.FragmentTransaction;  

  9. import android.support.v4.view.ViewPager;  

  10. import android.support.v4.view.ViewPager.OnPageChangeListener;  

  11.   

  12. import com.actionbarsherlock.app.ActionBar;  

  13. import com.actionbarsherlock.app.ActionBar.Tab;  

  14. import com.actionbarsherlock.app.SherlockFragmentActivity;  

  15.   

  16. public class MainActivity extends SherlockFragmentActivity implements ActionBar.TabListener, OnPageChangeListener{  

  17.     /**

  18.      * 頂部Tab的title

  19.      */  

  20.     private String [] mTabTitles;  

  21.       

  22.     /**

  23.      * ViewPager對象的引用

  24.      */  

  25.     private ViewPager mViewPager;  

  26.       

  27.     /**

  28.      * 裝載Fragment的容器,我們的每一個界面都是一個Fragment

  29.      */  

  30.     private List mFragmentList;  

  31.       

  32.     /**

  33.      * ActionBar對象的引用

  34.      */  

  35.     private ActionBar mActionBar;  

  36.   

  37.     @Override  

  38.     protected void onCreate(Bundle savedInstanceState) {  

  39.         super.onCreate(savedInstanceState);  

  40.         setContentView(R.layout.activity_main);  

  41.           

  42.         //從資源文件在獲取Tab的title  

  43.         mTabTitles = getResources().getStringArray(R.array.tab_title);  

  44.         mFragmentList =  new ArrayList();  

  45.           

  46.         mViewPager = (ViewPager) findViewById(R.id.viewPager);  

  47.         //設置Adapter  

  48.         mViewPager.setAdapter(new TabPagerAdapter(getSupportFragmentManager(), mFragmentList));  

  49.         //設置監聽  

  50.         mViewPager.setOnPageChangeListener(this);  

  51.           

  52.           

  53.         //獲取Action實例我們使用getSupportActionBar()方法  

  54.         mActionBar = getSupportActionBar();  

  55.           

  56.         //隱藏Title  

  57.         mActionBar.setDisplayShowTitleEnabled(false);  

  58.         //隱藏Home logo  

  59.         mActionBar.setDisplayShowHomeEnabled(false);  

  60.         //設置ActionBar的導航模式為Tab  

  61.         mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);  

  62.           

  63.           

  64.         //為ActionBar添加Tab并設置TabListener  

  65.         for(int i=0; i

  66.              ActionBar.Tab tab = mActionBar.newTab();  

  67.              tab.setText(mTabTitles[i]);  

  68.              tab.setTabListener(this);  

  69.              mActionBar.addTab(tab, i);  

  70.         }  

  71.           

  72.           

  73.         //將Fragment加入到List中,并將Tab的title傳遞給Fragment  

  74.         for(int i=0; i

  75.             Fragment fragment = new ItemFragment();  

  76.             Bundle args = new Bundle();  

  77.             args.putString("arg", mTabTitles[i]);  

  78.             fragment.setArguments(args);  

  79.               

  80.             mFragmentList.add(fragment);  

  81.         }  

  82.           

  83.     }  

  84.       

  85.       

  86.   

  87.     @Override  

  88.     public void onTabSelected(Tab tab, FragmentTransaction ft) {  

  89.         //點擊ActionBar Tab的時候切換不同的Fragment界面  

  90.         mViewPager.setCurrentItem(tab.getPosition());  

  91.     }  

  92.   

  93.     @Override  

  94.     public void onTabUnselected(Tab tab, FragmentTransaction ft) {  

  95.   

  96.     }  

  97.   

  98.     @Override  

  99.     public void onTabReselected(Tab tab, FragmentTransaction ft) {  

  100.           

  101.     }  

  102.       

  103.       

  104.     @Override  

  105.     public void onPageScrollStateChanged(int arg0) {  

  106.           

  107.     }  

  108.   

  109.     @Override  

  110.     public void onPageScrolled(int arg0, float arg1, int arg2) {  

  111.           

  112.     }  

  113.   

  114.     @Override  

  115.     public void onPageSelected(int arg0) {  

  116.         //滑動ViewPager的時候設置相對應的ActionBar Tab被選中  

  117.         mActionBar.setSelectedNavigationItem(arg0);  

  118.     }  

  119.   

  120.   

  121. }  

我 們使用ActionBarSherlock的時候不再是繼承Activity,而是繼承 SherlockActivity,SherlockDialogFragment,SherlockFragmentActivity等等,我這里用到 Fragment,所以繼承SherlockFragmentActivity,我們不能隨便設置Activity的theme,以后我們要全屏顯示的時 候直接設置android:theme="@android:style/Theme.Black.NoTitleBar", 我們使用ActionBar就不能這樣設置了,并且不能隨便設置他的Theme,必須是Theme.Sherlock, Theme.Sherlock.Light, Theme.Sherlock.Light.DarkActionBar,或者是他們的子樣式,不然就會出 java.lang.IllegalStateException異常,所以為了自定義ActionBar的Tab,我們必須修改其style

注意:我們還必須刪除ViewPagerAndTab工程libs下面的android-support-v4.jar包,因為在ActionBarSherlock已經包含android-support-v4.jar

 

3.ViewPager的適配器TabPagerAdapter,因為我們用到Fragment,所以我們繼承FragmentStatePagerAdapter而不是PagerAdapter

[java] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片

  1. package com.example.viewpagerandtabdemo;  

  2.   

  3. import java.util.List;  

  4.   

  5. import android.support.v4.app.Fragment;  

  6. import android.support.v4.app.FragmentManager;  

  7. import android.support.v4.app.FragmentStatePagerAdapter;  

  8.   

  9. public class TabPagerAdapter extends FragmentStatePagerAdapter {  

  10.     private List list;  

  11.       

  12.     //構造函數  

  13.     public TabPagerAdapter(FragmentManager fm, List list) {  

  14.         super(fm);  

  15.         this.list = list;  

  16.     }  

  17.   

  18.     @Override  

  19.     public Fragment getItem(int arg0) {  

  20.         return list.get(arg0);  

  21.     }  

  22.   

  23.     @Override  

  24.     public int getCount() {  

  25.         return list.size();  

  26.     }  

  27.   

  28. }  

 

4.ItemFragment 繼承SherlockFragment,也可以直接繼承Fragment,里面的的布局比較簡單,一個TextView用來顯示從Activity傳遞過來的ActionBar Tab的title

[java] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片

  1. package com.example.viewpagerandtabdemo;  

  2.   

  3. import android.os.Bundle;  

  4. import android.view.LayoutInflater;  

  5. import android.view.View;  

  6. import android.view.ViewGroup;  

  7. import android.widget.TextView;  

  8.   

  9. import com.actionbarsherlock.app.SherlockFragment;  

  10.   

  11.   

  12. public class ItemFragment extends SherlockFragment {  

  13.   

  14.     @Override  

  15.     public View onCreateView(LayoutInflater inflater, ViewGroup container,  

  16.             Bundle savedInstanceState) {  

  17.           

  18.         View contextView = inflater.inflate(R.layout.fragment_item, container, false);  

  19.         TextView mTextView = (TextView) contextView.findViewById(R.id.textview);  

  20.           

  21.         //獲取Activity傳遞過來的參數  

  22.         Bundle mBundle = getArguments();  

  23.         String title = mBundle.getString("arg");  

  24.           

  25.         mTextView.setText(title);  

  26.           

  27.         return contextView;  

  28.     }  

  29.   

  30.     @Override  

  31.     public void onActivityCreated(Bundle savedInstanceState) {  

  32.         super.onActivityCreated(savedInstanceState);  

  33.     }  

  34.   

  35. }  

然后我們將上面的Activity的theme設置成android:theme="@style/Theme.Sherlock.Light.DarkActionBar" 運行項目看看效果,下圖一是項目的效果,圖二是網易的效果

是不是相差很大呢?人家下面的指示條是紅色的,我們做出來的是藍色的,人家選中Tab的字體顏色是紅色,我們的不變色等等,那么我們要怎么才能做出網易新聞的那樣子的效果,我們需要改變其style,改變如下

[html] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片

  1. <style name="Themes.ActionBarTab" parent="@style/Theme.Sherlock">  

  2.       

  3.     <item name="actionBarDivider">@nullitem>  

  4.       

  5.       

  6.     <item name="actionBarSize">45dipitem>  

  7.       

  8.       

  9.     <item name="actionBarTabTextStyle">@style/Widget.Sherlock.ActionBar.TabTextitem>  

  10.       

  11.       

  12.     <item name="actionBarTabStyle">@style/Widget.Sherlock.ActionBar.TabViewitem>  

  13.       

  14.       

  15.     <item name="actionBarStyle">@style/Widget.Slider.ActionBaritem>  

  16. style>  

  17.   

  18.   

  19.  <style name="Widget.Slider.ActionBar" parent="@style/Widget.Sherlock.ActionBar">    

  20.     <item name="backgroundStacked">@drawable/base_action_bar_bgitem>  

  21. style>  

  22.   

  23. <style name="Widget.Sherlock.ActionBar.TabText" parent="android:Widget.Holo.ActionBar.TabText">  

  24.     <item name="android:textColor">@drawable/selector_tabtextitem>  

  25.     <item name="android:textSize">15spitem>  

  26. style>  

  27.   

  28. <style name="Widget.Sherlock.ActionBar.TabView" parent="Widget">  

  29.     <item name="android:background">@drawable/tab_indicatoritem>  

  30.     <item name="android:paddingLeft">8dipitem>  

  31.     <item name="android:paddingRight">8dipitem>  

  32. style>   

還有一些圖片,selector我沒有貼出來,可以去下載代碼看看效果,改變style運行效果

 

好了,今天的講解到此結束,有疑問的朋友請在下面留言,有興趣的可以看看 開源框架ViewPageIndicator 和 ViewPager 仿網易新聞客戶端Tab標簽

 源碼下載,請點擊

很 多朋友說自己在4.1上面怎么設置style沒效果,首先這個庫是在2.X的機器上面使用ActionBar,3.0以后就是使用Andriod自帶的 ActionBar,所以在3.0以上的系統使用的style為android自帶的style,所以我們要將style文件做下修改,如下

[html] view plaincopyprint?在CODE上查看代碼片派生到我的代碼片

  1.   <style name="Themes.ActionBarTab" parent="@style/Theme.Sherlock">  

  2.         

  3.       <item name="actionBarDivider">@nullitem>  

  4. <item name="android:actionBarDivider">@nullitem>  

  5.         

  6.         

  7.       <item name="actionBarSize">45dipitem>  

  8. <item name="android:actionBarSize">45dipitem>  

  9.         

  10.         

  11.       <item name="actionBarTabTextStyle">@style/Widget.Sherlock.ActionBar.TabTextitem>  

  12. <item name="android:actionBarTabTextStyle">@style/Widget.Sherlock.ActionBar.TabTextitem>  

  13.         

  14.         

  15.       <item name="actionBarTabStyle">@style/Widget.Sherlock.ActionBar.TabViewitem>  

  16. <item name="android:actionBarTabStyle">@style/Widget.Sherlock.ActionBar.TabViewitem>  

  17.         

  18.         

  19.       <item name="actionBarStyle">@style/Widget.Slider.ActionBaritem>  

  20. <item name="android:actionBarStyle">@style/Widget.Slider.ActionBaritem>  

  21.   style>  

  22.     

  23.     

  24.    <style name="Widget.Slider.ActionBar" parent="@style/Widget.Sherlock.ActionBar">    

  25.       <item name="backgroundStacked">@drawable/base_action_bar_bgitem>  

  26. <item name="android:backgroundStacked">@drawable/base_action_bar_bgitem>  

  27.   style>  

  28.   

  29.   <style name="Widget.Sherlock.ActionBar.TabText" parent="android:Widget.Holo.ActionBar.TabText">  

  30.       <item name="android:textColor">@drawable/selector_tabtextitem>  

  31.       <item name="android:textSize">15spitem>  

  32.   style>  

  33.   

  34.   <style name="Widget.Sherlock.ActionBar.TabView" parent="Widget">  

  35.       <item name="android:background">@drawable/tab_indicatoritem>  

  36.       <item name="android:paddingLeft">8dipitem>  

  37.       <item name="android:paddingRight">8dipitem>  

  38.   style>   

 

 

 

穩定

產品高可用性高并發

貼心

項目群及時溝通

專業

產品經理1v1支持

快速

MVP模式小步快跑

承諾

我們選擇聲譽

堅持

10年專注高端品質開發
  • 返回頂部
新CHINESE无套小帅KTV| 免费高清视频 大片| 天堂А√在线最新版中文在线| 国产精品后入内射日本在线观看| 久久人人爽人人爽人人片AV高请| 余生请多指教在线观看免费全集| 欧美黑人XXXX| 公交车上售票员用B验票小镇| 哦┅┅快┅┅用力啊┅┅| 无码人妻一区二区三区密桃手机版| 韩国女星潜规39集无删减| 在小巷里被强高HNP| 日韩成人一区二区三区在线观看| 国产午夜视频在线观看| 中文字幕无码视频手机免费看| 丝瓜草莓视频APP| 九九视频在线观看视频6| 99热国产这里只有精品无卡顿| 舔高中女生奶头内射视频| 久久久精品波多野结衣AV| 草莓视频APP下载| 亚洲乱妇熟女爽到高潮| 欧州一级 片内射AV| 国产午夜成人无码免费看| 高清国产亚洲精品自在久久 | 亚洲精品无码久久久久去Q| 日本一本2017国产| 麻豆亚洲国产成人精品无码区| 午夜男女爽爽影院免费视频下载| 久久久久久久久久久大尺度免费视 | 好男人资源在线观看好| 色噜噜狠狠色综合网| 美女自拍高潮流白浆| 日韩国产欧美亚洲V片| 亚洲中文字幕AV无码专区| 少妇人妻无码专用视频| 人与各种动ZZZ0O0OⅩⅩX| 伦理电线在2019| 国产男女无遮挡猛进猛出| YY4480高清影院播放器| 又大又长粗又爽又黄少妇视频| 成人无码区免费A∨电影| www.黄色AV考逼| 在线观看AV黄网站永久| 丰满少妇AAAAAA爰片毛片| 欧美黑人XXXX性高清版| 干了老婆闺蜜两个小时| 亚洲精品卡一卡2卡3卡4卡| 久久久久久精品免费免费999| 69国产成人精品午夜福中文| 老干部熟女高潮视频| 亚洲风情亚Aⅴ在线发布| 久久久久久久久久久精品尤物| 日产无人区一线二线三线新版 | 爆乳大森しずか无码| 精品人人妻人人爽D∨D| 性丰满ⅩXXOOOZZXXHD| 免费A级毛片无码樱桃视频| 国产成年无码V片在线| 洗澡被公强玩好舒服肉欲小说| 浪货趴办公桌~H揉秘书| 国产成人精品无码A区在线观看| 岳潮湿的大肥梅开二度第三部最新 | 亚洲欧美日韩中文字幕在线一区| 久久99精品久久久久久9蜜桃 | 性妇WBBBB搡BBBB嗓1| 麻豆久久久9性大片| 高清欧美性猛XXXX黑人| 亚洲午夜福利在线观看| 军人全身脱精光自慰| 国产又黄又爽又刺激的免费网址| 亚洲码国产精品高潮在线| 熟妇啊轻点灬大JI巴太粗| 欧美free叉叉叉叉极品少妇| YY影院电视剧大全| 亚洲最大的成人网站| 精品人妻码一区二区三区| 在线看片无码永久AV| 日产无人区一线二线三线小 | А√天堂 地址 在线| 青青草无码精品伊人久久蜜臀| 影音先锋无码A∨男人资源站| 美女下部裸体张开腿视频| 激情五月色综合国产精品| 97无码免费人妻超级碰碰碰碰| 少妇被躁爽到高潮无码文 | 男人女人做爽爽18禁免费| YW.1CNC爆乳尤物未| 中文字幕无码成人片| 中国农村真卖BBWBBW| 亚洲熟妇色XXXXX欧美老妇| 人妻办公室内上司侵犯| 欧美丰满熟妇BBBBBB性亚洲| 娇妻被猛男老外玩三PAV| AV无码中文一区二区三区四区| 少妇被躁C至高潮HD| 人妻欲求不满中文字幕在线| 和岳每晚弄的高潮嗷嗷叫| 成人在线高清不卡免费视频| 成熟丰满熟妇高潮XXXX| 在线观看高H无码黄动漫| 在线观看免费AV网站| 91精品人妻一区二区三区蜜桃 | 日韩精品无码人妻免费视频| 水蜜桃国产精品欧美日韩一区不卡| 国产中年熟女高潮大集合| 久久99精品久久久久久动态图| 国产一区二区精品久久| 娇小12-13╳YⅩ╳毛片高清| 皇帝在御花园进入贵妃的小说| 黑人巨茎大战欧美白妇| 18禁无遮挡羞羞啪啪免费网站| 让女人受不了19种新姿势| 欧美性猛交ⅩXXX乱大交| 娇小萝被两个黑人用半米长| 精品一区二区三区波多野结衣| 亂倫近親相姦中文字幕AV| 农村人乱弄一区二区| 色欲久久久天天天综合网精品| 妺妺自愿做我的性玩具| 久久见久久久国产精品蜜桃| 国产日产高清欧美一区| 公交车后车座的疯狂的做小| 好大好硬好深好爽想要20P| 女的用嘴巴吃鸡会得HPV| 日本JAPANESE护士人妻| 无码人妻久久一区二区三区免费丨| 亚洲日韩电影久久| 性少妇VIDEOXXX欧美69| 色窝窝人妻9色聚色窝| 亚洲AV无码不卡在线观看下载| 人妻丰满熟妇AV无码片| 精品人妻潮喷久久久又裸又黄| 欧美VIDEOS另类色HDFR| 撕掉她的衣服吮的双乳游戏 | 中文字幕V亚洲ⅤV天堂| 再深点灬舒服灬太大了添视频软件| 女人的选择HD中字| 国产精品久久久久婷婷五月色| 坐公交车居然被弄了2个小时小说 坐公交车居然被弄了2个小时 | 亚洲国产精久久久久久久| 国产午夜成人免费看片APP| 暗交小拗女一区二区三区三州| 欧美熟妇内射深插| 久久人人爽人人人人片AV| 精品久久久久久亚洲综合网| 国产在线成人一区二区三区| 国产精品久久无码不卡| 国产精品自在线拍国产手青青机版 | 国产精东天美AV影业传媒| 中文乱码精品一区二区三区人妻| 丰满少妇被猛烈高清播放| 一本大道在线无码一区| 熟睡入侵JEALOUSVUE| 岳潮湿的大肥梅开二度第三部最新| 国产蜜臀AV在线一区尤物| 人妻人人澡人人添人人爽人人玩 | 日本丰满的人妻HD高清在线| 久久人人爽人人爽人人片AV| 偷欧洲亚洲另类图片AV天堂| 18禁黄网站禁片免费观看女女 | 成人欧美一区二区三区白人| 久久男人AV资源网站无码| 亚洲国产精品不卡AV在线| 丰满人爽人妻AXXXXHD| 日本理论片YY4800免费| 91人妻丰满熟妇Aⅴ无码| 久久国产乱子精品免费女| 亚洲AV鲁丝一区二区三区| 国产精品无码不卡一区二区三区| 公粗挺进了我的密道在线观看| 欧美性猛交╳XXX乱大交| 99国产欧美精品久久久蜜芽| 久久婷婷五月综合97色直播 | 熟女乱中文字幕熟女熟妇| 草莓榴莲秋葵绿丝污免费版18| 人人妻人人澡人人爽人人DVD | 欧美三级一区二区| chinese熟女老女人hd视频| 中文字幕人妻无码专区APP| 娇小12-13╳YⅩ╳毛片高清| 亚洲AV无码精品蜜桃| AV大片在线无码免费| 久碰人澡人澡人澡人澡人视频| 一二三四在线观看免费中文吗| 东京热无码AV男人的天堂| 国产成人 综合 亚洲欧美| 少女たちよ在线观看动漫在线观看 | 人人人人人人一摸| FREE紧VIDEOXX粗又长| 精品一线二线三线精华液| 亚洲亚洲人成无码网WWW| 久久久久久人妻一区二区三区| 亚洲熟妇AV日韩熟妇在线| 久久丫精品国产亚洲AV| 小婷又软又嫩又紧水又多的软件| 国产成人片AⅤ在线观看| 女性C春合欢液高朝液精华液| 99国产精品99久久久久久| 少妇扒开腿让我爽了一夜|