您的位置:首页 > 其它

ToolBar工具条的简单使用

2016-06-06 21:56 375 查看
菜单选项之ToolBar

    关键词:inflateMenu    解析布局文档  setOnMenuItemClickListener 设定菜单选项监听  

     navigationIcon 导航图标  setNavigationOnClickListener 监听导航选项

    首先建立一个类

    public class ToolBar_Activity extends AppCompatActivity {

    Toolbar mToolbar;

    View view;

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_tool_bar_layout);

       view = findViewById(R.id.Menu_Relative);//// TODO: 2016/6/6 得到view的对向 在SnackBar里面使用

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

        mToolbar.inflateMenu(R.menu.my_option_menu);//todo 解析布局文档

//        TODO 监听选项

        mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {

            @Override

            public boolean onMenuItemClick(MenuItem item) {

                switch (item.getItemId()) {

                    case R.id.my_option_add:

//                        Toast.makeText(ToolBar_Activity.this, "添加成功", Toast.LENGTH_SHORT).show();

                        Snackbar.make(view,"添加成功",Snackbar.LENGTH_SHORT).show();

                        break;

                    case R.id.my_option_delete:

                        Toast.makeText(ToolBar_Activity.this, "删除成功", Toast.LENGTH_SHORT).show();

                        break;

                    case R.id.my_option_edit:

                        Toast.makeText(ToolBar_Activity.this, "修改成功", Toast.LENGTH_SHORT).show();

                        break;

                    case R.id.my_option_check:

                        Toast.makeText(ToolBar_Activity.this, "查找到", Toast.LENGTH_SHORT).show();

                        break;

                }

                return false;

            }

        });

//        TODO 监听导航选项

        mToolbar.setNavigationOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                Toast.makeText(ToolBar_Activity.this, "返回", Toast.LENGTH_SHORT).show();

                finish();

            }

        });

    }

}

    R.layout.activity_tool_bar_layout对应的xml文档,应主动去掉padding 的一切属性

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

   android:id="@+id/Menu_Relative"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

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

    <android.support.v7.widget.Toolbar  //必须使用v7.widget兼容包,否则Toolbar只支持5.0以后的版本

        android:id="@+id/Menu_ToolBar"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_alignParentBottom="true"//Toolbar本身就是ViewGroup 可以任意设定一切view 的属性

        android:background="@color/green"

        

        app:title="设置"  //这些全是APP属性

        app:titleTextColor="@color/blue"

        app:logo="@drawable/dog1"

        app:subtitle="java"

        app:subtitleTextColor="@color/blue"

        app:navigationIcon="@drawable/ic_action_back"

         />

</RelativeLayout>

    R.menu.my_option_menu对应的menu资源属性,menu资源应设定在res下

        showAsAction 对应值为always      总是ToolBar显示

                            never          永不在ToolBar中显示

                            ifRoom         有空间就显示

                            withText    显示Title的text ,可以和其他值一起使用(ifRoom|withText)

                            collapseActionView     actionview是可伸缩的API(14)

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

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

    <item android:id="@+id/my_option_add"

        android:title="添加"

        app:showAsAction="ifRoom"/>

    <item android:id="@+id/my_option_delete"

        android:title="删除"

        app:showAsAction="ifRoom|withText"/>

    <item android:id="@+id/my_option_edit"

        android:title="修改"

        app:showAsAction="never"

        android:orderInCategory="100"/>

    <item android:id="@+id/my_option_check"

        android:title="查找"

        android:icon="@drawable/ic_action_search"

        app:showAsAction="always"

        android:orderInCategory="100"/>

</menu>

还应该在mainifest.xml 文件中修改theme主题

    只有屏蔽掉ActionBar才能使用Toolbar

   <activity android:name=".Menu.ToolBar_Activity" android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: