package ren.solid.library.activity; import android.content.Context; import android.os.Bundle; import android.support.design.widget.AppBarLayout; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v7.widget.Toolbar; import android.text.TextUtils; import android.view.View; import android.widget.TextSwitcher; import android.widget.TextView; import android.widget.ViewSwitcher; import ren.solid.library.R; import ren.solid.library.activity.base.BaseActivity; /** * Created by _SOLID * Date:2016/4/22 * Time:13:30 * <p/> * ToolbarActivity */ public abstract class ToolbarActivity extends BaseActivity { protected AppBarLayout mAppBarLayout; protected TextSwitcher mTextSwitcher; protected FragmentManager mFragmentManager; @Override protected void init(Bundle savedInstanceState) { mFragmentManager = getSupportFragmentManager(); } @Override protected void setUpView() { mAppBarLayout = $(R.id.appbar_layout); setUpToolBar(); if (!isHaveTitle()) { mAppBarLayout.setVisibility(View.GONE); } setTitle(getToolbarTitle()); } private void setUpToolBar() { Toolbar mToolbar = $(R.id.toolbar); setSupportActionBar(mToolbar); mToolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onBackPressed(); } }); getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowTitleEnabled(false); mTextSwitcher = $(R.id.textSwitcher); mTextSwitcher.setFactory(new ViewSwitcher.ViewFactory() { @SuppressWarnings("deprecation") @Override public View makeView() { Context context = ToolbarActivity.this; TextView textView = new TextView(context); textView.setTextAppearance(context, R.style.WebTitle); textView.setSingleLine(true); textView.setEllipsize(TextUtils.TruncateAt.MARQUEE); textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(final View v) { v.setSelected(!v.isSelected()); } }); return textView; } }); mTextSwitcher.setInAnimation(this, android.R.anim.fade_in); mTextSwitcher.setOutAnimation(this, android.R.anim.fade_out); } protected abstract String getToolbarTitle(); @Override protected void setUpData() { Fragment fragment = getFragment(); if (fragment != null) mFragmentManager.beginTransaction().replace(R.id.fl_content, fragment).commit(); } @Override protected int setLayoutResourceID() { return R.layout.activity_toolbar; } @Override public void setTitle(CharSequence title) { super.setTitle(title); mTextSwitcher.setText(title); mTextSwitcher.setSelected(true); } protected abstract Fragment getFragment(); protected boolean isHaveTitle() { return true; } }