Android maxLine属性导致android:imeOptions失效
16lz
2021-01-23
简介
项目中有一个EditText,需要键盘中的回车事件。原本的写法:
EditText属性设置:
android:imeOptions="actionSearch" android:singleLine="true"
设置为单行,回车统一显示为“搜索”
private TextView.OnEditorActionListener queryEdit = new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { String query = inputView.getText().toString().trim(); if (actionId != EditorInfo.IME_ACTION_SEARCH || TextUtils.isEmpty(query)) return false; KeyboardUtils.hideSoftKeyboard(mContext, inputView); if (searchType == Classical_type) { Intent intent = new Intent(mContext, SuggestResultActivity.class); intent.putExtra(SuggestResultActivity.INTENT_QUERY, query); startActivity(intent); } else { Intent intent = new Intent(mContext, DetailActivity.class); intent.putExtra(DetailActivity.IntentWords, query); intent.putExtra(DetailActivity.IntentAncientModel, false); startActivity(intent); } return true; } };
在OnEditorActionListener的OnEditorAction方法中对actionId判断是否是IME_ACTION_SEARCH。
原本这段逻辑么有问题,后来想着把sdk舍弃的singleLine数据换成maxLine,代码更改如下:
android:imeOptions="actionSearch" android:maxLine="1"
更改的代码就一行,结果。。。android:imeOptions="actionSearch"这个属性没有生效。。
最后的解决方法,把maxLine改回singleLine.
更多相关文章
- Android近百个项目的源代码
- Android代码速查,写给新手的朋友们
- android:layout_weight 属性对于组件长度的影响
- Android清单文件属性大全
- Java代码设置Android全屏
- [置顶] Android 代码混淆 选项说明