package com.metis.base.activity; import android.os.Bundle; import android.support.annotation.IntDef; import android.support.v7.app.AppCompatActivity; import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewDebug; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.RelativeLayout; import com.metis.base.R; import com.metis.base.widget.TitleBar; /** * Created by Beak on 2015/7/8. */ public abstract class TitleBarActivity extends BaseActivity { private TitleBar mTitleBar = null; private FrameLayout mContentViewContainer = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.setContentView(R.layout.activity_title_bar); mTitleBar = (TitleBar)findViewById(R.id.title_bar); mContentViewContainer = (FrameLayout)findViewById(R.id.content_view_container); mTitleBar.setTitleLeft(getTitleLeft()); mTitleBar.setTitleRight(getTitleRight()); CharSequence title = getTitleCenter(); if (TextUtils.isEmpty(title)) { title = getTitle(); } mTitleBar.setTitleCenter(title); if (showAsUpEnable()) { mTitleBar.setDrawableResourceLeft(R.drawable.ic_title_back); mTitleBar.setOnLeftBtnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onBackPressed(); } }); } if (!isTitleBarOverlay()) { RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)mContentViewContainer.getLayoutParams(); params.addRule(RelativeLayout.BELOW, R.id.title_bar); mContentViewContainer.setLayoutParams(params); } mTitleBar.setVisibility(getTitleVisibility()); } public CharSequence getTitleCenter () { return null; } public TitleBar getTitleBar () { return mTitleBar; } public CharSequence getTitleLeft () { return null; } public CharSequence getTitleRight () { return null; } public boolean isTitleBarOverlay () { return false; } public boolean showAsUpEnable () { return false; } /** * * @return One of {@link View#VISIBLE}, {@link View#INVISIBLE}, or {@link View#GONE}. * @attr ref android.R.styleable#View_visibility */ @ViewDebug.ExportedProperty(mapping = { @ViewDebug.IntToString(from = View.VISIBLE, to = "VISIBLE"), @ViewDebug.IntToString(from = View.INVISIBLE, to = "INVISIBLE"), @ViewDebug.IntToString(from = View.GONE, to = "GONE") }) /*@View.Visibility*/ public int getTitleVisibility () { return View.VISIBLE; } @Override public void setContentView(int layoutResID) { View view = LayoutInflater.from(this).inflate(layoutResID, null,true); setContentView(view); //super.setContentView(layoutResID); } @Override public void setContentView(View view) { //super.setContentView(view); mContentViewContainer.addView(view); } @Override public void setContentView(View view, ViewGroup.LayoutParams params) { //super.setContentView(view, params); mContentViewContainer.addView(view, params); } }