Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android Toobar的一個簡單封裝

android Toobar的一個簡單封裝

編輯:關於Android編程

現有的APP嘗試向Material Design靠齊,開始使用Toolbar代替之前的ActionBar。

Toolbar和ActionBar的直觀區別就是需要我們自己將ToolBar加到自己的布局文件中。目前的情況是:在我們的現有項目上改動,多數的Activity都是繼承一個BaseActivity。為了用最小的代價達到目的,簡單的思考之後,做了如下的改動:

 

/**
 * 帶ToolBar的基類
 */
public class BaseActivity extends ActionBarActivity {
    private static final int BASE_VIEW_ID = R.layout.activity_base;
    private static final LayoutParams LAYOUT_PARAMS = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);

    private LinearLayout mParentView;
    private Toolbar mToolBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ViewUtils.startTranslucent(this);
        super.onCreate(savedInstanceState);
        setContentView(BASE_VIEW_ID);

    }

    @Override
    public void setContentView(int layoutResID) {
        if (BASE_VIEW_ID == layoutResID) {
            super.setContentView(layoutResID);

            mParentView = (LinearLayout) findViewById(R.id.base_parent_view);
            mToolBar = (Toolbar) findViewById(R.id.toolbar);
            initToolbar(mToolBar);
            return;
        }

        mParentView.addView(getLayoutInflater().inflate(layoutResID, null), LAYOUT_PARAMS);
    }

    @Override
    public void setContentView(View view) {
        mParentView.addView(view, LAYOUT_PARAMS);
    }

    private void initToolbar(Toolbar toolbar) {
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }

    public Toolbar getToolBar() {
        return mToolBar;
    }

    public void setBackground(int colorId) {
        if (null != mParentView) {
            mParentView.setBackgroundColor(getResources().getColor(colorId));
        }
    }
}

 

布局文件activity_base.xml:

 




    
在基類中添加如上代碼,基本可以用最小的改動達到使用Toolbar的目的。但是,這樣也存在一個問題,就是會使我們的每個Activity的布局層次多了一層。

 

 

 


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved