控件toolbar的基本使用

来源:互联网 发布:社交网络 下载 编辑:程序博客网 时间:2024/05/17 02:36

前言:

虽然Github上控件不计其数,功能形式也市各种各样,但我认为我们如果要掌握该控件,还是要亲自实现控件基本内容,而不是拿来注意。

toolbar的基本使用

首先引入依赖
compile 'com.android.support:design:24.2.1'

接着在XML文件中写出控件
<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="wrap_content"    tools:context="com.example.myapplication.MainActivity"    xmlns:toolbar="http://schemas.android.com/apk/res-auto">    <android.support.v7.widget.Toolbar        android:layout_width="match_parent"        android:layout_height="wrap_content"        toolbar:navigationIcon="@mipmap/menu"        android:background="@color/colorPrimary"        android:id="@+id/toolbar"        toolbar:title="首页"        android:theme="@style/Theme.ToolBar.ZhiHu"        toolbar:popupTheme="@style/ToolbarPopupTheme"        >    </android.support.v7.widget.Toolbar></LinearLayout>

这里有几个点需要注意一下

xmlns:toolbar="http://schemas.android.com/apk/res-auto"
这个属性不可或缺,玩过自定义控件的朋友都知道这个,因为之后我们设置title之类的,需要用到的前缀是toolbar:XXXX。

android:theme="@style/Theme.ToolBar.ZhiHu"
是用来设置toolbar的主题,这里我自己写了一个主题,并继承系统内置的主题,目的是为了把toolbar最后一个图标的颜色改过来(如果不设置,它是黑色的)

toolbar:popupTheme="@style/ToolbarPopupTheme"
这个是用来设置菜单弹出的主题,我把它设置成为在toolbar下弹出,这样就不会阻挡住本控件,并且这里对菜单颜色背景之类进行设置。

resource代码
<resources>    <!-- Base application theme. -->    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">        <!-- Customize your theme here. -->        <item name="colorPrimary">@color/colorPrimary</item>        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>        <item name="colorAccent">@color/colorAccent</item>    </style>    //////////////////////////////////////    <span style="color:#ff0000;"><!--设置一个toolbar主题--></span>    <style name="Theme.ToolBar.ZhiHu" parent="Theme.AppCompat.Light.NoActionBar">        <item name="actionOverflowButtonStyle">@style/ActionButton.Overflow.ZhiHu</item>        <item name="android:textColorPrimary">#FFFFFF</item>    </style>    <style name="ActionButton.Overflow.ZhiHu" parent="android:style/Widget.Holo.Light.ActionButton.Overflow">        <item name="android:src">@mipmap/more</item>    </style>    ////////////////////////////   <span style="color:#ff0000;"> <!--设置一个toolbar菜单的主题--></span>    <style name="ToolbarPopupTheme" parent="@style/ThemeOverlay.AppCompat.Light">        <item name="android:colorBackground">#FFFFFF</item>        <item name="actionOverflowMenuStyle">@style/OverflowMenuStyle</item>        <!--新增一个item,用于控制menu-->    </style>    <style name="OverflowMenuStyle" parent="Widget.AppCompat.Light.PopupMenu.Overflow">        <item name="overlapAnchor">false</item>        <span style="color:#ff0000;"><!--把该属性改为false即可使menu位置位于toolbar之下--></span>    </style></resources>


Activity代码

   @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.activity_main);        toolbar = (Toolbar) findViewById(R.id.toolbar);        toolbar.inflateMenu(R.menu.toolbar_menu);        toolbar.setOnMenuItemClickListener(new OnMenuItemClickListener() {            @Override            public boolean onMenuItemClick(MenuItem item) {                return false;            }        });        //setSupportActionBar(toolbar);    }
经过我在网上的浏览,我发现使用toolbar大部分分为两种方式,一种是把toolbar当初actionbar使用,也就是先继承无actionbar主题,然后利用setSupportActionBar(toolbar)设置,把toolbar当作actionbar使用,这样确实可以,但是有亮点,一个是在使用的过程种,我们要注意setSupportActionBar(toolbar)的顺序,有时顺序不当会造成问题,还有一点,actionbar的有些设置是不能作用在toolbar上的,所以toolbar的功能有些被埋没了。

还有另外一个方法就是我写的这种,用supportRequestWindowFeatur(Window.FEATURE_NO_TITLE); 把toolbar隐藏,然后就能正常使用toolbar了。

在toolbar中加入点击事件,在代码中已经给出

这只是最基础最基础的用法,不过我健忘,又不喜欢重复,所以记录下载,然后把代码放在github上。

代码地址:
https://github.com/Ayo616/toobar

0 0
原创粉丝点击