android 使用android.support.v7 添加ActionBar


當需要在 android 7或更高的版本使用 ActionBar,則可以通過繼承ActionBarActivity來實現,

網上有一個開源項目來兼容老版本顯示ActionBar的效果:ActionBarSherlock。

使用android.support.v7 來實現ActionBar感覺會更簡單一些。

 

android.support.v7 有三個jar文件可供使用,對於ActionBar我們需要使用android-support-v7-appcompat.jar

路徑:...\sdk\extras\android\support\v7\appcompat\libs   

 

但是直接把這個jar  導入項目是不可以使用的,具體的步驟:

1. 把appcompat 工程導入eclipse  [appcompat是一個 library project] ,路徑:...\sdk\extras\android\support\v7\appcompat\

導入之后的項目:

2.導入appcompat工程的時候,記得要  Copy projects into workspace

 

3.創建你自己的工程,如myDemo,右鍵單擊該工程,選擇Properties

在彈出的對話框中,選擇Android選項卡,然后點擊Add按鈕,添加appcompat工程。

然后 OK 就可以了,我們的工程就引用了 support V7庫工程了。

4.在manifest文件中,為你使用了ActionBar的actitity添加theme屬性,這個theme必須是 @style/Theme.AppCompat 或它的子類

如:

5.在res/menu目錄下,修改Menu對應的xml文件:

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

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:icon="@drawable/ic_launcher"
        alpha:showAsAction="ifRoom|withText"
        android:title="@string/action_settings"/>

</menu>

需要注意的是:

 

xmlns:alpha="http://schemas.android.com/apk/res-auto"  和  alpha:showAsAction="ifRoom|withText"

他們的 alpha 要一致哦,相當於自定義一個命名空間,名字可以隨意,但要一致。

 

感覺這樣的含義:如果直接使用android:showAsAction,但對於早期的版本來說android命名空間下不存在這個屬性,就不能看到ActionBar的效果,而這個屬性的定義存在於support V7 里面,所以可以兼容之前的版本。

 

6.繼承 ActionBarActivity  處理ActionBar

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;

public class MainActivity extends ActionBarActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

本文轉自:http://blog.csdn.net/go_to_learn/article/details/10230987


免責聲明!

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



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