Android ToolBar的基本使用方式

什么是ToolBar

ToolBar是Android在5.0开始推出的导航控件,是用来取代以前的ActionBar的。ToolBar比ActionBar灵活许多。简单的说,可以吧ToolBar当作一个新的控件来使用。并且ToolBar的自定义程度更高。

使用ToolBar

为了向下兼容,通常使用兼容库中的ToolBar。添加兼容库之后就可以开始i使用ToolBar了。首先要在XML中设置NoActionBar的主题。然后在布局代码中添加ToolBar

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:fitsSystemWindows="true"
    tools:context="com.swpuiot.secondarytradingplatformv20.ToolBarActivity">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_tool_bar" />

</LinearLayout>

这个时候启动活动就可以看的到导航栏了,这个导航栏是ToolBar而不是以前的ActionBar了。然后在Activity中找到ToolBar控件,就可以进行很多操作。


public class ToolBarActivity extends AppCompatActivity {
    Toolbar toolbar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tool_bar);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);//用toolbar取代以前的actionBar
        toolbar.setTitle("我是标题");
        toolbar.setNavigationIcon(R.mipmap.ic_launcher);//导航图标
        toolbar.setSubtitle("我是小标题");
        toolbar.setLogo(R.mipmap.ic_launcher);//Logo
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(ToolBarActivity.this, "You Click NavigationIcon", Toast.LENGTH_SHORT).show();
            }
        });
    }


    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        //这个方法是用来设置点击事件的
        switch (item.getItemId()) {
            case R.id.menu_clock:
                Toast.makeText(ToolBarActivity.this, "You Click clock", Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu_listen:
                Toast.makeText(ToolBarActivity.this, "You Click Listen", Toast.LENGTH_SHORT).show();
                break;
        }
        return true;
    }
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    //系统会调用这个方法来初始化菜单
    getMenuInflater().inflate(R.menu.menu_test,menu);
    return true;
}


}

添加menu按钮的时候需要在res/menu下创建资源文件

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".ToolBarActivity">
    <item
        android:id="@+id/menu_clock"
        android:title="clock"
        android:icon="@drawable/menu_clock"
        app:showAsAction="ifRoom|withText"
        />
    <item
        android:id="@+id/menu_listen"
        android:title="listen"
        android:icon="@drawable/ic_action_name"
        app:showAsAction="ifRoom|withText"
        />
</menu>

猜你喜欢

转载自blog.csdn.net/m0_37076574/article/details/54141634