欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-05 12:09:40
...

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

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

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

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

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

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

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

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

requestWindowFeature 必须写在 setContentView的前面)

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

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

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

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

1. 在style.xml定义样式:

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

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

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

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

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

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

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

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

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

 @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,就这样就可以啦

上一篇: easyui

下一篇: Base64 原理