package com.eighteengray.procamera.activity; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.ListView; import com.eighteengray.procamera.R; public class BaseActivity extends FragmentActivity { private Toolbar mToolBar; private LinearLayout mDectorView = null;//根布局 private FrameLayout mContentView = null;//activity内容布局 protected DrawerLayout mDrawerLayout; protected ListView mDrawerList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (mDectorView == null) { initView(); } //如果已经创建就先把内容清空,再添加 if (mContentView != null) { mContentView.removeAllViews();//mContentview清空里面的view } initView();//初始化控件 } private void initView() { //生成DecorView mDectorView = new LinearLayout(this); mDectorView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); mDectorView.setOrientation(LinearLayout.VERTICAL); //添加toolbar,把activity_toolbar的布局添加到mDectorView上 View view = getLayoutInflater().inflate(R.layout.activity_toolbar, mDectorView); mToolBar = (Toolbar) view.findViewById(R.id.toolbar); mToolBar.setTitleTextColor(Color.parseColor("#ff00ff")); mToolBar.setNavigationIcon(R.mipmap.label_procamera); } @Override public void setContentView(int layoutResID) { mDrawerLayout = (DrawerLayout) getLayoutInflater().inflate(R.layout.activity_base, null); mContentView = (FrameLayout) mDrawerLayout.findViewById(R.id.content_frame); // 将传入的layout加载到activity_base的content_frame里面 getLayoutInflater().inflate(layoutResID, mContentView, true); super.setContentView(mDrawerLayout); //生成drawer /*planetTitles = getResources().getStringArray(R.array.planets_array); drawerList = (ListView) findViewById(R.id.left_drawer); drawerList.setAdapter(new ArrayAdapter<>(BaseActivity.this, R.layout.list_item_drawer, planetTitles));*/ } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: mDrawerLayout.openDrawer(GravityCompat.START); return true; default: break; } return super.onOptionsItemSelected(item); } @Override protected void onStart() { super.onStart(); } @Override protected void onResume() { super.onResume(); } @Override protected void onPause() { super.onPause(); } @Override protected void onStop() { super.onStop(); } @Override protected void onDestroy() { super.onDestroy(); finish(); } @Override public void onBackPressed() { super.onBackPressed(); } }