Android應用開發常用知識-ActionBar相關(5)

設置ActionBar和TabBar顯示模式

ActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS)即可另Actionbra使用tab作爲導航模式;
ActionBar.addTab(Tab tab)使用該方法爲你的導航添加具體的Tab;
當屏幕寬度較窄時,Tab顯示在Actionbar下一行,總共兩行,常見於手機豎屏時;
根據Developer官方Holo Design指導,當屏幕寬度足夠時,Tab將嵌入Actionbar顯示爲一行,如大屏Pad、手機橫屏時;
我們可以通過以下的代碼設置強制現實爲一行:

    private void setTabBarNarrowMode(){
        try{
            Method setHasEmbeddedTabsMethod = mActionBar.getClass().getDeclaredMethod(
                    "setHasEmbeddedTabs", boolean.class);
            setHasEmbeddedTabsMethod.setAccessible(true);
            setHasEmbeddedTabsMethod.invoke(mActionBar, true);
        } catch (Exception e){
            e.printStackTrace();
        }
    }

如果改爲強制兩行顯示:

setHasEmbeddedTabsMethod.invoke(mActionBar, false);

Android 5.0 消除ActionBar下面的陰影

在Android 5.0上你會發現ActionBar下面默認會出現一條陰影,如下設置可以消除陰影:

getActionBar().setElevation(0);

Android 5.0之前可以用下面代碼消除陰影:

<item name="android:windowContentOverlay">@null</item>

設置ActionBar左右邊距

        View v = findViewById(R.id.action_bar);
        if(v instanceof Toolbar){
            Toolbar toolbar = (Toolbar) v;
            toolbar.setContentInsetsAbsolute(getResources().getDimensionPixelOffset(R.dimen.toolbar_content_inset),
                    getResources().getDimensionPixelOffset(R.dimen.toolbar_content_inset));
        }

實現點擊ActionBar返回按鈕返回

設置 ActionBar:

actionBar.setDisplayHomeAsUpEnabled(true)

重寫

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:

                finish();
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

或者是在 Manifest 文件中配置:

android:parentActivityName=".MainActivity"

一些設置

  • 顯示後退按鈕:actionBar.setDisplayHomeAsUpEnabled(true)
  • 顯示標題:actionBar.setDisplayShowTitleEnabled(true)
  • 替換後退圖標:actionBar.setHomeAsUpIndicator(@DrawableRes int resId)
發佈了190 篇原創文章 · 獲贊 64 · 訪問量 48萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章