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,就這樣就可以啦
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章