android 通用Toolbar

android 通用Toolbar,第1张

概述一、基于Activity在的其他Activity只要继承于这个BaseActivity,实现抽象方法会实现返回 *** 作,可以根据自己的需求把initBaseView里面的设置title和回退按钮的逻辑分离出来,比较更加通用一些。publicabstractclassBaseActivityextendsAppCompatActivity{/** 一、基于Activity

在的其他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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1108237.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存