Toolbar标题栏

<android.support.v7.widget.Toolbar
    android:id="@+id/tool_bar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary"></android.support.v7.widget.Toolbar>

第一种:将actionbar替换为toolbar

/**
 * 1.在布局文件中添加ToolBar控件
 * 2.在styles.xml文件中隐藏ActionBar
 * 3.在Activity中查找ToolBar,并给Toolbar设置属性,最后,用ToolBar代替ActionBar
 */
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar);
        //设置标题
        toolbar.setTitle("Title");
        //设置二级标题
        toolbar.setSubtitle("二级标题");
        //设置导航图标
//        toolbar.setNavigationIcon(R.drawable.abg);
//        toolbar.setLogo(R.drawable.abg);
        //将ToolBar当作ActionBar来使用
        setSupportActionBar(toolbar);
        //显示导航按钮,这行代码一定要放在setSupportActionBar(toolbar);之后执行
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                Toast.makeText(MainActivity.this, "home", Toast.LENGTH_SHORT).show();
                break;
        }
        return super.onOptionsItemSelected(item);
    }
}

2.将toolbar当作普通控件使用

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar);
        toolbar.setTitle("Title");
        toolbar.setSubtitle("SubTitle");
        //加载菜单文件到ToolBar上
        toolbar.inflateMenu(R.menu.main);
        //设置菜单项的点击事件
        toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.menu1:
                        Toast.makeText(MainActivity.this, "menu1", Toast.LENGTH_SHORT).show();
                        break;
                }
                return true;
            }
        });
    }
}

三.分享和搜索

<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/share"
        android:title="share"
        app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
        app:showAsAction="always"/>
    <item
        android:id="@+id/search"
        android:title="search"
        app:showAsAction="always"
        app:actionViewClass="android.support.v7.widget.SearchView"/>
</menu>
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar);
        setSupportActionBar(toolbar);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu, menu);
        /**************************处理分享控件**************************/
        //获得分享item
        MenuItem shareItem = menu.findItem(R.id.share);
        //获得ShareActionProvider
        ShareActionProvider shareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem);
        //设置要分享的数据
        shareActionProvider.setShareIntent(getShareIntent());
        /*******************************处理搜索控件*************************************/
        SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            //提交搜索 文本时触发
            @Override
            public boolean onQueryTextSubmit(String query) {
                Log.d("lenve", "onQueryTextSubmit: " + query);
                return true;
            }

            //搜索文本改变时触发
            @Override
            public boolean onQueryTextChange(String newText) {
                Log.d("lenve", "onQueryTextChange: " + newText);
                return true;
            }
        });
        return super.onCreateOptionsMenu(menu);
    }

    private Intent getShareIntent() {
        Intent intent = new Intent();
        //设置要分享的数据
        intent.putExtra(Intent.EXTRA_STREAM, Uri.parse(Environment
                .getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
                .getAbsolutePath() + File.separator + "p2.png"));
        //设置数据类型
        intent.setType("image/*");
        return intent;
    }
}

 

posted @ 2016-04-26 09:53  嘉禾世兴  阅读(326)  评论(0编辑  收藏  举报