Android v7包下Toolbar和ActionBarActivity實現后退導航效果


android.support.v7包下的ToolBar和ActionBarActivity,均自帶后退導航按鈕,只是要手動開啟,讓它顯示出來。
先來看看ToolBar,頁面前台代碼:
<android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

如果要讓后退按鈕顯示出來,需要在后台添加如下的代碼

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

當然添加這行代碼后僅僅是出現一個后退的箭頭而已,點擊后並沒反應,需要繼續添加監聽事件才行,默認添加的按鈕id是固定的,android.R.id.home,在onOptionsItemSelected中再添加如下的監聽事件

     case android.R.id.home:
              finish();
              break;

其實這樣並不是真正意義上的返回上一個頁面,而是將這個頁面銷毀,從而顯示上一個頁面,也就是跳轉之前的頁面。

那么ActionBarActivity如何設置呢,看下面:

首先在要返回的頁面A中設置該頁面為要返回的頁面

    setHomeButtonEnabled

然后在清單文件中設置頁面B的parentActivityName為頁面A即可,但是這個屬性在API 16之后才可,之前的話要用meta-data才可

<meta-data android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity"></meta-data>

要在頁面B中顯示后退按鈕,也要添加代碼

        ActionBar actionBar=getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);    

這樣在頁面B的標題欄左上角就公顯示一個后退箭頭,點擊后就會自動返回頁面A,並不需要添加額外的監聽事件。

總結:看起來ActionBarActivity自帶的后退導航要比ToolBar的更方便,但是到目前為止,google已不建議使用ActionBarActivity,現在在AS中新建Activity繼承的是AppCompatActivity,至於為什么我這個初學者並不知道,我也嘗試實現ToolBar的自動后退效果,但是雖然ToolBar也有對應的setHomeButtonEnabled方法和setDisplayHomeAsUpEnabled,但是並不起作用,google后找到的都是說的要添加監聽事件,並沒有發現有說可以實現類似ActionBarActivity的效果,最后放棄。


免責聲明!

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



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