android.support.v7.widget.SearchView開發記錄(一)
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/qingfeng812/article/details/51548722
android.support.v7.widget.SearchView開發記錄(一)
問題列表
SearchView焦點問題
mSearchView.clearFocus();
SearchView展開狀態
mSearchView.setIconified(false)
SearchView獲取輸入框:SearchView.SearchAutoComplete
mEdit = (SearchView.SearchAutoComplete) mSearchView.findViewById(R.id.search_src_text)
SearchView 查詢圖示預設位於編輯框內
mSearchView.setIconifiedByDefault(false);
SearchView修改樣式
找到V7包下關於SearchView 資源佈局檔案,根據id來取得相關子View控制元件,然後設定子View的樣式;關於設定自定義樣式,主要是關於Shape,Laylist,Selector的設定
mEdit = (SearchView.SearchAutoComplete) mSearchView.findViewById(R.id.search_src_text);
關鍵程式碼
menu 佈局檔案:
<item
android:id="@+id/action_search"
android:icon="@mipmap/icon_search"
app:actionViewClass="android.support.v7.widget.SearchView"
android:title="@string/menu_find"
app:showAsAction="ifRoom" />
activity 關鍵程式碼:
SearchView.SearchAutoComplete mEdit;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
Log.i(TAG, "MainSearchActivity:onCreateOptionsMenu:140:" + "onCreateOptionsMenu()");
getMenuInflater().inflate(R.menu.menu_search, menu);
final MenuItem item = menu.findItem(R.id.action_search);
mSearchView = (SearchView) MenuItemCompat.getActionView(item);
mSearchView.setIconifiedByDefault(false);
mEdit = (SearchView.SearchAutoComplete) mSearchView.findViewById(R.id.search_src_text);
mEdit.setText(value);
mEdit.setSelection(value.length());
mSearchView.setQueryHint("輸入您感興趣的...");
final LinearLayout search_edit_frame= (LinearLayout) mSearchView.findViewById(R.id.search_edit_frame);
search_edit_frame.setBackgroundResource(R.drawable.shape_from_edit);
search_edit_frame.setClickable(true);
mEdit.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
search_edit_frame.setPressed(hasFocus);
}
});
mEdit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
search_edit_frame.setPressed(true);
}
});
mEdit.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
/*判斷是否是“GO”鍵*/
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
/*隱藏軟鍵盤*/
mSearchView.clearFocus();
search_edit_frame.setPressed(false);
KeyBoardUtils.closeKeybord(mEdit, ct);
//清空
if (!StringUtils.isEmpty(v.getText().toString())) {
contentlists.clear();
value = v.getText().toString();
page = 1;
resqustData(page);
}
return true;
}
return false;
}
});
return true;
}
原文點選
相關文章
- 【開發記錄】Linux常用命令記錄(一)Linux
- 開發記錄
- [新手開發記錄] 新建一個網站網站
- 記錄一個 NPM 包的開發 -- smmsNPM
- OpenHarmony SystemUI開發記錄SystemUI
- PL/SQL開發記錄SQL
- 記錄開發過程一個路由問題路由
- 微信公眾號Java開發記錄(一)接入Java
- 記錄一次測開面試題記錄面試題
- iOS開發初學者記錄iOS
- [新手開發記錄] 從測試開始開發
- 記錄一次OCR程式開發的嘗試
- 記錄一個 Chrome 擴充套件的開發過程Chrome套件
- 【面試】阿里iOS開發實習電話面試記錄(一)面試阿里iOS
- 記一次基於雲服務開發文件線上編輯系統的開發記錄,支援版本記錄、可增加批註。
- 個人部落格開發記錄
- 原生微信小程式開發記錄微信小程式
- uniapp開發踩坑記錄APP
- 搭建rust開發環境-記錄Rust開發環境
- Flutter 混合開發實戰問題記錄(一)FlutterView閃爍FlutterView
- 記錄一次騰訊Go開發崗位面試經過Go面試
- Hyperf 開發的動漫站記錄
- Android 多渠道打包開發記錄Android
- mpvue開發cnode社群問題記錄Vue
- 開發:隨筆記錄之 HTTP 呼叫筆記HTTP
- java後端開發ms題記錄Java後端
- web開發必備-網路基礎知識---記錄一下Web
- 記錄mini-task--代理郵件發收系統的開發過程(一)
- 【記錄】WSL 下搭建前端開發環境前端開發環境
- 記錄Laravel開發常用擴充套件包Laravel套件
- 【刷遊戲開發面經記錄】2遊戲開發
- K3.BOS外掛開發記錄
- LayIM.NetClient 元件開發記錄client元件
- 【iOS開發】ViewController減負記錄iOSViewController
- phpHiveAdmin開發兩個月記錄薦PHPHive
- 記錄ABAP開發的日常——SAP_PO開發同步介面案例
- 開源記錄
- 記錄第一次完整的uni-app開發經驗APP