ActionBar在Android2.x的實現,類似新版微信界面。


ActionBar完美兼容Android4.x的機型,雖然現在Android2.x的系統越來越少,還有有一部分人使用的仍是2.x的系統,所以我們還得考慮着兼容性問題。

對比圖:

Test例子與微信的對比,測試機型SONY XPERA Mt27i Android2.3.7

在Android官網中我們可以看到有這樣一個更新包,android-support-v7,這個包就是專門解決ActionBar的向下兼容性問題。

第一步:在 \extras\android\support 這個目錄下面有v7這個包(當然你必須把自己的SDK更新到最新),打開找到appcompat這個項目,作為Android項目導入Eclipse,並勾選Is Libary.

第二步:新建一個Android項目,設置 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" />,在AndroidManifest中給聲明過的Activity加 android:theme="@style/Theme.AppCompat.Light" 這樣一個屬性(否則會報錯)。

第三步:把Libary加入新建的項目中去,如圖

第四步:讓主Activity繼承ActionBarActivityimport android.support.v7.app.ActionBarActivity),實現ActionBar有點不同,如下:

actionBar = getSupportActionBar();

第五步:ActionBar上添加控件,在menu目錄中,添加紅色字體為你的項目名稱 xmlns:TabsWithSwipeGesture="http://schemas.android.com/apk/res-auto" ,

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:TabsWithSwipeGesture="http://schemas.android.com/apk/res-auto" 
     >

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        TabsWithSwipeGesture:showAsAction="ifRoom"
        TabsWithSwipeGesture:actionViewClass="android.support.v7.widget.SearchView"/>    
    <item
        android:id="@+id/action_test1"
        android:orderInCategory="100"
        TabsWithSwipeGesture:showAsAction="ifRoom"
        android:title="測試1"/>   
     <item
        android:id="@+id/action_test2"
        android:orderInCategory="100"
        TabsWithSwipeGesture:showAsAction="ifRoom"
        android:title="測試2"/>   
</menu>

把showAsAction前面的android:替換成當前的項目名稱,actionViewClass也引用support-v7中的。

第六步:實現Search

SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
getMenuInflater().inflate(R.menu.main, menu);
MenuItem searchItem = menu.findItem(R.id.action_settings);
SearchView searchview = (SearchView)MenuItemCompat.getActionView(searchItem);

  

未完·········待續···············

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM