使用Toolbar工具栏

来源:互联网 发布:ubuntu 14.04 阿里源 编辑:程序博客网 时间:2024/05/16 01:06

Toolbar工具栏是谷歌推荐使用的工具栏(相对于ActionBar)。因为它属于Material控件,具有更好的灵活性。本记录是从《第一行代码andriod》中学习到的。应该不属性原创。但考虑到一是并非直接转载,另外 也加了一些自己的东西。姑且为原创吧。

使用Toolbar总共需要五步。操作如下:

1.停用原来自动生成的ActionBar控件.

2.准备Menu菜单的xml文件和在相关活动页中镶入Toolbar控件。

3.在活动页中填充Toolbar控件。

4.填充自定义菜单和设置相关事件。

详细操作如下:

1.首先要把原来属于的ActionBar停止掉。在文件AndroidManifest.xml中引用了原来菜单的主题.

<application        android:allowBackup="true"        android:icon="@mipmap/ic_launcher"        android:label="@string/app_name"        android:roundIcon="@mipmap/ic_launcher_round"        android:supportsRtl="true"        android:theme="@style/AppTheme">        <activity            android:name=".MainActivity"            android:label="ListView操作">        </activity>        <activity android:name=".ToolBarActivity">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <action android:name="com.example.myapp.ToolBarActivity" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application>

注意AppTheme来源于文件夹\src\main\res\value\style.xml之中。

<resources>    <!-- Base application theme. -->    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">        <!-- Customize your theme here. -->        <item name="colorPrimary">@color/colorPrimary</item>        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>        <item name="colorAccent">@color/colorAccent</item>    </style></resources>

将AppTheme的parent改成Theme.AppCompat.Light.NoActionBar。这样原来的ActionBar 就被停用掉了。接下来我们当然要把自己的Toolbar放入到活动页中啦。

2.准备一个要自己的Toolbar样式文件 。

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto">    <item android:title="编辑"        android:icon="@mipmap/mango"        android:id="@+id/edit"        app:showAsAction="always"/>    <item android:title="保存"        android:icon="@mipmap/pear"        android:id="@+id/save"        android:menuCategory="alternative"        app:showAsAction="always"/></menu>

3.在活动页的layout中放入一个Toolbar控件。

<android.support.v7.widget.Toolbar        android:id="@+id/toolbar"        android:layout_width="match_parent"        android:layout_height="?attr/actionBarSize"        android:background="?attr/colorPrimary"        android:minHeight="?attr/actionBarSize"        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"        android:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

4.将Toolbar控件放入活动页中。

protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_tool_bar);        Toolbar toolBar = (Toolbar)findViewById(R.id.toolbar);        setSupportActionBar(toolBar);    }
5.把自定义的Menu内容放入Toolbar之中.并指定相关事件处理。

public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.menu,menu);        return  true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        switch (item.getItemId()){            case R.id.edit:                Toast.makeText(this,"选择了编辑菜单",Toast.LENGTH_SHORT).show();                break;            case R.id.save:                Toast.makeText(this,"选择了保存",Toast.LENGTH_SHORT).show();                break;        }        return true;    }



0 0
原创粉丝点击