91在线公开视频_全黄特一级_www.亚洲天堂网_杏导航aⅴ福利网站_久久久综合网_大又大粗又爽又黄少妇毛片

18842388900

網(wǎng)站建設(shè) APP開(kāi)發(fā) 小程序

Article/文章

記錄成長(zhǎng)點(diǎn)滴 分享您我感悟

您當(dāng)前位置>首頁(yè) > 知識(shí) > 網(wǎng)站建設(shè)

ActionBarSherlock框架

每個(gè)人都知道Android的ActionBar只能在3.0以上,所以低于3.0,google不提供支持3.0以下ActionBar的軟件包,但外國(guó)大奶JakeWharton在3.0以下實(shí)現(xiàn)ActionBar,JakeWharton Big Dan是ActionBarSherlock,Android-ViewPagerIndicator, NineOldAndroids的作者,一個(gè)非常強(qiáng)大的人,Github的注意力超過(guò)2.6K,我的左鏈接有他的Github主頁(yè)鏈接,感興趣的朋友可以關(guān)注Next,今天我們正在使用他的開(kāi)源框架ActionBarSherlock,ActionBarSherlock是讓Action Bar函數(shù)支持2.X之后的所有平臺(tái),并且他會(huì)自動(dòng)確定是否調(diào)用本機(jī)Action Bar或使用擴(kuò)展的ActionBar,許多著名的應(yīng)用程序也使用這個(gè)庫(kù),之前我不知道ActionBar,所以我去了ActionBarSherlock可以很好地理解ActionBar的使用

讓我們先從Github下載這個(gè)庫(kù),下載地址https://github.com/JakeWharton/ActionBarSherlock,下載它以了解壓力,如圖所示

CODE_ico.png%20

Xmlns:%20tools='http://schemas.android.com/tools'

Android:%20layout_width='match_parent'

Android:%20layout_height='match_parent'

Android:%20background='@%20android:%20color/white'>%20

Android:%20id='@%20+%20id/viewPager'

Android:%20layout_width='fill_parent'

Android:%20layout_height='wrap_content'/>%20

的RelativeLayout>%20

2.MainActivity代碼,單擊ActionBar的Tab,ViewPager切換不同的Fragment,滑動(dòng)ViewPager,選擇相應(yīng)的ActiionBar%20Tab%20

[java]查看plaincopyprint?%20

Packagecom.example.viewpagerandtabdemo;%20

importjava.util.ArrayList;%20

importjava.util.List;%20

Importandroid.os.Bundle;%20

importandroid.support.v4.app.Fragment;%20

importandroid.support.v4.app.FragmentTransaction;%20

importandroid.support.v4.view.ViewPager;%20

importandroid.support.v4.view.ViewPager.OnPageChangeListener;%20

importcom.actionbarsherlock.app.ActionBar;%20

importcom.actionbarsherlock.app.ActionBar.Tab;%20

importcom.actionbarsherlock.app.SherlockFragmentActivity;%20

publicclassMainActivityextendsSherlockFragmentActivityimplementsActionBar.TabListener,OnPageChangeListener%20{

/**%20

*頂部標(biāo)題標(biāo)題

*/

privateString%20[]%20mTabTitles;%20

/**%20

*參考ViewPager對(duì)象

*/

privateViewPagermViewPager;%20

/**%20

*加載Fragment容器,我們的每個(gè)接口都是Fragment%20

*/

privateListmFragmentList;%20

/**%20

*參考ActionBar對(duì)象

*/

privateActionBarmActionBar;%20

@override%20

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);%20

的setContentView(R.layout.activity_main);%20

//從資源文件中獲取選項(xiàng)卡的標(biāo)題

mTabTitles=getResources()getStringArray(R.array.tab_title);%20

mFragmentList=newArrayList();%20

mViewPager=(ViewPager)findViewById(R.id.viewPager);%20

//設(shè)置適配器

mViewPager.setAdapter(newTabPagerAdapter(getSupportFragmentManager(),mFragmentList));%20

//設(shè)置監(jiān)聽(tīng)器

mViewPager.setOnPageChangeListener(本);%20

//獲取我們使用getSupportActionBar()方法的Action實(shí)例

mActionBar=getSupportActionBar();%20

//隱藏標(biāo)題

mActionBar.setDisplayShowTitleEnabled(假);%20

//隱藏Homelogo%20

mActionBar.setDisplayShowHomeEnabled(假);%20

//將ActionBar的導(dǎo)航模式設(shè)置為T(mén)ab%20

mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);%20

//將一個(gè)Tab添加到ActionBar并設(shè)置TabListener%20

對(duì)于(INTI=0;%20I;>%20

ActionBar.Tabtab=mActionBar.newTab();%20

tab.setText(mTabTitles%20[I]);%20

tab.setTabListener(本);%20

mActionBar.addTab(選項(xiàng)卡,I);%20

}%20

//將片段添加到列表中并將Tab的標(biāo)題傳遞給片段

對(duì)于(INTI=0;%20I;取代;>%20

Fragmentfragment=newItemFragment();%20

Bundleargs=newBundle();%20

args.putString(%20'ARG',mTabTitles%20[I]);%20

fragment.setArguments(參數(shù));%20

mFragmentList.add(片段);%20

}%20

}%20

@override%20

publicvoidonTabSelected(Tabtab,F(xiàn)ragmentTransactionft){

//單擊ActionBarTab%20

時(shí)切換到不同的Fragment界面

mViewPager.setCurrentItem(tab.getPosition());%20

}%20

@override%20

publicvoidonTabUnselected(Tabtab,F(xiàn)ragmentTransactionft){

}%20

@override%20

publicvoidonTabReselected(Tabtab,F(xiàn)ragmentTransactionft){

}%20

@override%20

publicvoidonPageScrollStateChanged(intarg0){

}%20

@override%20

publicvoidonPageScrolled(intarg0,floatarg1,intarg2){

}%20

@override%20

publicvoidonPageSelected(intarg0){

//滑動(dòng)ViewPager時(shí),將相應(yīng)的ActionBarTab設(shè)置為

mActionBar.setSelectedNavigationItem(為arg0);%20

}%20

}%20

;取代;>%20

當(dāng)我們使用ActionBarSherlock時(shí),我們不再繼承Activity,而是繼承SherlockActivity,SherlockDialogFragment,SherlockFragmentActivity等。我在這里使用Fragment,所以我繼承了SherlockFragmentActivity,我們不能只設(shè)置Activity的主題,我們將直接在全屏設(shè)置android稍后顯示。%20theme='@%20android:%20style/Theme.Black.NoTitleBar',我們無(wú)法使用ActionBar設(shè)置它,我們無(wú)法隨便設(shè)置他的主題,它必須是Theme.Sherlock,Theme.Sherlock.Light,Theme%20.Sherlock.Light%20.DarkActionBar,或者它們的子類(lèi),否則會(huì)拋出java.lang.IllegalStateException,所以為了自定義ActionBar的Tab,我們必須修改它的樣式

注意:我們還必須刪除ViewPagerAndTab工程libs下面的android-support-v4.jar包,因?yàn)樵贏ctionBarSherlock已經(jīng)包含android-support-v4.jar

3.ViewPager適配器TabPagerAdapter,因?yàn)槲覀兪褂肍ragment,所以我們繼承了FragmentStatePagerAdapter而不是PagerAdapter%20

[java]查看plaincopyprint?%20

Packagecom.example.viewpagerandtabdemo;%20

importjava.util.List;%20

importandroid.support.v4.app.Fragment;%20

importandroid.support.v4.app.FragmentManager;%20

importandroid.support.v4.app.FragmentStatePagerAdapter;%20

publicclassTabPagerAdapterextendsFragmentStatePagerAdapter%20{

privateListlist;%20

//構(gòu)造函數(shù)

publicTabPagerAdapter(FragmentManagerfm,Listlist){

超級(jí)(FM);%20

This.list=列表;%20

}%20

@override%20

publicFragmentgetItem(intarg0){

Returnlist.get(為arg0);%20

}%20

@override%20

publicintgetCount(){

Returnlist.size();%20

}%20

}%20

4.ItemFragment繼承了SherlockFragment,也可以直接繼承Fragment。內(nèi)部布局相對(duì)簡(jiǎn)單。%20TextView用于顯示從Activity傳遞的ActionBar%20Tab的標(biāo)題。

[java]查看plaincopyprint?%20

Packagecom.example.viewpagerandtabdemo;%20

Importandroid.os.Bundle;%20

importandroid.view.LayoutInflater;%20

Importandroid.view.View;%20

importandroid.view.ViewGroup;%20

importandroid.widget.TextView;%20

importcom.actionbarsherlock.app.SherlockFragment;%20

publicclassItemFragmentextendsSherlockFragment%20{

@override%20

publicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,

BundlesavedInstanceState){

ViewcontextView=inflater.inflate(R.layout.fragment_item,容器,F(xiàn)ALSE);%20

TextViewmTextView=(TextView的)contextView.findViewById(R.id.textview);%20

//獲取Activity傳遞的參數(shù)

BundlemBundle=getArguments();%20

Stringtitle=mBundle.getString(%20'ARG');%20

mTextView.setText(標(biāo)題);%20

returncontextView;%20

}%20

@override%20

publicvoidonActivityCreated(BundlesavedInstanceState){

super.onActivityCreated(savedInstanceState);%20

}%20

}%20

然后我們將上面Activity的主題設(shè)置為android:%20theme='@style/Theme.Sherlock.Light.DarkActionBar'運(yùn)行項(xiàng)目看效果,下圖是項(xiàng)目的效果,圖2是效果網(wǎng)易

%20

這是一個(gè)很大的區(qū)別嗎?人們下面的酒吧是紅色的,我們正在制作藍(lán)色,選中Tab的人的字體顏色是紅色的,我們的顏色不會(huì)變色等等,那么我們?cè)鯓硬拍苤谱骶W(wǎng)易新聞的效果,我們需要改變它的風(fēng)格,改變?nèi)缦?/p>

[html]查看plaincopyprint?%20

@%20nullitem>%20

45dipitem>%20

@風(fēng)格/Widget.Sherlock.ActionBar.TabTextitem>%20

@風(fēng)格/Widget.Sherlock.ActionBar.TabViewitem>%20

@風(fēng)格/Widget.Slider.ActionBaritem>%20

樣式和GT;%20

@繪制/base_action_bar_bgitem>%20

樣式和GT;%20

@繪制/selector_tabtextitem>%20

15spitem>%20

樣式和GT;%20

@繪制/tab_indicatoritem>%20

8dipitem>%20

8dipitem>%20

樣式和GT;%20

有一些圖片,選擇器我沒(méi)有發(fā)布,你可以下載代碼看效果,改變樣式運(yùn)行效果

%20

好的,今天的解釋在這里結(jié)束了。如果您有任何疑問(wèn),請(qǐng)?jiān)谙旅媪粞浴H绻信d趣,可以查看開(kāi)源框架ViewPageIndicator和ViewPager模仿網(wǎng)易新聞客戶(hù)端Tab標(biāo)簽

源代碼下載,請(qǐng)點(diǎn)擊

許多朋友說(shuō)他們對(duì)如何設(shè)置4.1的風(fēng)格沒(méi)有影響。首先,這個(gè)庫(kù)在2.X機(jī)器上使用ActionBar。在3.0之后,它使用了Andriod附帶的ActionBar,因此3.0系統(tǒng)中使用的樣式是android。樣式,所以我們必須修改樣式文件如下

[html]查看plaincopyprint?ico_fork.svg

@ nullitem>

@ nullitem>

45dipitem>

45dipitem>

@風(fēng)格/Widget.Sherlock.ActionBar.TabTextitem>

@風(fēng)格/Widget.Sherlock.ActionBar.TabTextitem>

@風(fēng)格/Widget.Sherlock.ActionBar.TabViewitem>

@風(fēng)格/Widget.Sherlock.ActionBar.TabViewitem>

@風(fēng)格/Widget.Slider.ActionBaritem>

@風(fēng)格/Widget.Slider.ActionBaritem>

樣式和GT;

@繪制/base_action_bar_bgitem>

@繪制/base_action_bar_bgitem>

樣式和GT;

@繪制/selector_tabtextitem>

15spitem>

樣式和GT;

@繪制/tab_indicatoritem>

8dipitem>

8dipitem>

樣式和GT;

標(biāo)簽:& nbsp& nbsp沈陽(yáng)app開(kāi)發(fā)&營(yíng)銷(xiāo)類(lèi)型網(wǎng)站建設(shè)& nbsp沈陽(yáng)App Design& ActionBarSherlock框架

網(wǎng)站建設(shè),小程序開(kāi)發(fā),小程序制作,微信小程序開(kāi)發(fā),公眾號(hào)開(kāi)發(fā),微信公眾號(hào)開(kāi)發(fā),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站優(yōu)化,網(wǎng)站排名,網(wǎng)站設(shè)計(jì),微信小程序設(shè)計(jì),小程序定制,微信小程序定制

相關(guān)案例查看更多

主站蜘蛛池模板: 渑池县| 岳西县| 开原市| 株洲市| 耿马| 玛多县| 同江市| 肇东市| 葫芦岛市| 海宁市| 尖扎县| 蛟河市| 白城市| 铜陵市| 汉川市| 禹州市| 明溪县| 肥乡县| 精河县| 周至县| 和顺县| 长兴县| 保山市| 丰城市| 朝阳区| 宜阳县| 山丹县| 漳州市| 建瓯市| 梓潼县| 旬邑县| 威宁| 民和| 集贤县| 灵川县| 得荣县| 宝坻区| 金溪县| 黄平县| 海淀区| 尼木县|