Android开发:基本框架搭建前置

toolbar的使用(突发奇想)

网上toolbar相关介绍已经很多了,这里呢就记录一下一点新的想法。每次新建一个页面总要include一个toolbar进去,其实已经很方便了但写的次数多了还是想偷点懒,于是生出了一个在BaseActivity中手动添加的方法。

大致代码如下:


//Toolbar的布局文件

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

tools:ignore="UnusedAttribute"

android:id="@+id/toolbar"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@color/colorPrimary"

android:fitsSystemWindows="true"

android:minHeight="?attr/actionBarSize"

android:popupTheme="@style/Widget.AppCompat.ActionBar"

app:theme="@style/ToolbarTheme"/>


public class BaseActivity extends AppCompatActivity implements           

    Toolbar.OnMenuItemClickListener {    

    private LinearLayout mContentLayout;

    private Toolbar mToolbar;

    //首先重写布局,改变层级,并重写setContentView方法,将新建的布局放进mContentLayout   中;

    private void initContentView() {

        ViewGroup content = (ViewGroup) findViewById(android.R.id.content);

        content.removeAllViews();

        mContentLayout = newLinearLayout(this);

        mContentLayout.setOrientation(LinearLayout.VERTICAL);

        content.addView(view);

        view.addView(mContentLayout);  

    }

    @Override

    public void setContentView(int layoutResID) {

        LayoutInflater.from(this).inflate(layoutResID, mContentLayout, true);

    }

    //这是主要方法,需要在setContentView方法前调用。这里传入之前做好的Toolbar布局id,如果有menu则传入

    protected void setToolbar(int resId) {

        setToolbar(resId, DEFAULT);

    }

    protected void setToolbar(int resId, int menuId) {

        LayoutInflater.from(this).inflate(resId, mContentLayout, true);

        mToolbar = (Toolbar) findViewById(R.id.toolbar);

        if(menuId != DEFAULT) {

            mToolbar.inflateMenu(menuId);

        }

        setSupportActionBar(mToolbar);  

        mToolbar.setOnMenuItemClickListener(this);

    }

    @Override

    public booleanonMenuItemClick(MenuItem item) {

        return false;

    }

}

主要就是BaseActivity中对布局的重写,而对于所有继承了BaseActivity的Activity则可以省去布局中toolbar的添加和少点代码里。不过还有标题设置,自定义布局设置等方法需要完善,我觉得这些就属于个人定制范畴了,因此省去了这部分的代码。PS:第一次用这个文本编辑器,文章结构没调好,只能将就看看了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容