Android隐藏自带标题栏,显示自定义标题栏。

有些时候,我们想要自定义标题栏,比如在标题栏上放个 搜索 的SearchView。

当然就是隐藏原本自带的标题栏咯,先在style.xml定义一下样式:

然后在要自定义标题栏的activity里来使用这个主题,在manifest.xml中找到这个activity来设置theme:

接着,在这个activity对应的layout布局文件中 放一个ToolBar组件,以此来替代自带的 主题栏:

然后在这个activity里来设置  隐藏自带的标题栏 并 显示自己的ActionBar。

requestWindowFeature 必须写在 setContentView的前面)

这样就可以显示定义的ToolBar啦。

现在我们来写一个 带搜索功能的 标题栏:

1. 在style.xml定义样式:

2. 在manifest.xml 找到这个activity,设置它的theme

3. 在这个activity对应的 layout布局文件中定义一个 toolbar

4. 在menu.xml中定义一个searchView的item

5.在activity.java里面设置隐藏自带状态栏,显示自己的ToolBar,并在 onCreateOptionsMenu  里面设置SearchView

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.search_menu,menu);  //search_menu是在menu里定义的,
        MenuItem item = menu.findItem(R.id.search_view_menu); //search_menu.xml的一个对应的item的id
        final SearchView searchView  = (SearchView) MenuItemCompat.getActionView(item);
        //一进入便自动获得焦点
        searchView.setIconified(false);
        //true为让SearchView显示为一个 搜索图标,点击才展开输入框
        searchView.setIconifiedByDefault(false);
        //显示提交按钮
        searchView.setSubmitButtonEnabled(true); 
        searchView.setQueryHint("输入关键字搜索");//显示提示
        //设置SearchView的 EditTxt, search_src_text为自带的id标志
        SearchView.SearchAutoComplete st = searchView.findViewById(R.id.search_src_text);
        st.setHintTextColor(getResources().getColor(android.R.color.white)); //设置银色
        st.setTextColor(getResources().getColor(android.R.color.white));
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) { //搜索提交
                key = query;
                mBookInfos.clear();
                search(query);
                return false;
            }
            @Override
            public boolean onQueryTextChange(String newText) {
                return false;
            }
        });
        return super.onCreateOptionsMenu(menu);
    }

emm,就这样就可以啦

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值