
在的其他Activity只要继承于这个BaseActivity,实现抽象方法会实现返回 *** 作,可以根据自己的需求把initBaseVIEw里面的设置Title和回退按钮的逻辑分离出来,比较更加通用一些。
public abstract class BaseActivity extends AppCompatActivity { /** * 输入toolbar的ID,和文本内容 */ public voID initBaseVIEw(int ID,String Title) { Toolbar commonToolbar = (Toolbar)findVIEwByID(ID); TextVIEw commonTitle=(TextVIEw)findVIEwByID(R.ID.setting_Title); commonTitle.setText(Title); setSupportActionbar(commonToolbar); setBackArrow(); } /** * 设置左上角back按钮 */ public voID setBackArrow() { final Drawable upArrow = getResources().getDrawable(R.drawable.icon_back_left); //给Toolbar设置左侧的图标 getSupportActionbar().setHomeAsUpIndicator(upArrow); // 给左上角图标的左边加上一个返回的图标 。对应Actionbar.disPLAY_HOME_AS_UP getSupportActionbar().setdisplayHomeAsUpEnabled(true); //设置actionbar的标题是否显示,对应Actionbar.disPLAY_SHOW_Title。 getSupportActionbar().setdisplayShowTitleEnabled(false); } /** * 点击左上角的返回按钮,结束本Activity * home就是左上角的小箭头,在toolbar上 * * @param item * @return */ @OverrIDe public boolean onoptionsItemSelected(MenuItem item) { if (item.getItemID() == androID.R.ID.home) { basefinish(); return true; } return super.onoptionsItemSelected(item); } /** * 抽象方法,用于结束activity */ public abstract voID basefinish(); @OverrIDe public voID onBackpressed() { basefinish(); }}二、基于Fragment这个需要注意的是onVIEwCreated里面进行了相关初始化,在继承这个BaseFragment 的子类想要调用方法必须onVIEwCreated或者这个方法之后,这个方法在Fragment的生命周期中是onCreateVIEw之后执行做相关的初始化 *** 作
public class BaseFragment extends Fragment { /** * 通用的Toolbar标题 */ private TextVIEw commonTitle; /** * 通用的Toolbar */ private Toolbar commonToolbar; public Activity mActivity; private AppCompatActivity mAppCompatActivity; @OverrIDe public voID onVIEwCreated(VIEw vIEw, Bundle savedInstanceState) { super.onVIEwCreated(vIEw, savedInstanceState); mActivity = getActivity(); mAppCompatActivity=(AppCompatActivity)mActivity; } public voID initBaseVIEw(VIEw vIEw,int ID,String Title) { commonToolbar = (Toolbar)vIEw.findVIEwByID(ID); commonTitle=(TextVIEw)vIEw.findVIEwByID(R.ID.setting_Title); mAppCompatActivity.setSupportActionbar(commonToolbar); commonTitle.setText(Title); setBackArrow(); } /** * 设置左上角back按钮 */ public voID setBackArrow() { final Drawable upArrow = getResources().getDrawable(R.drawable.icon_back_left); //给Toolbar设置左侧的图标 mAppCompatActivity.getSupportActionbar().setHomeAsUpIndicator(upArrow); // 给左上角图标的左边加上一个返回的图标 。对应Actionbar.disPLAY_HOME_AS_UP mAppCompatActivity.getSupportActionbar().setdisplayHomeAsUpEnabled(true); //设置actionbar的标题是否显示,对应Actionbar.disPLAY_SHOW_Title。 mAppCompatActivity.getSupportActionbar().setdisplayShowTitleEnabled(false); }}还需要注意的就是菜单按钮的创建和Activity不同:
Activity是需要返回值的 public boolean onoptionsItemSelected(MenuItem item) 方法,
Fragment是需要提前设置setHasOptionsMenu(true),同时是 public voID onCreateOptionsMenu(Menu menu, MenuInflater inflater) 一个voID方法。
总结
以上是内存溢出为你收集整理的android 通用Toolbar全部内容,希望文章能够帮你解决android 通用Toolbar所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)