默认EditText弹出键盘如下,右下角是回车按钮
产品设计时候UI上没有设计搜索按钮,所以需要实现键盘右下角点击搜索
使用EditText的两个属性
android:imeOptions="actionSearch"
android:singleLine="true"
完整代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@android:color/darker_gray"
android:hint="键盘无搜索"
android:paddingLeft="20dp" />
<EditText
android:id="@+id/et_search"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_marginTop="30dp"
android:background="@android:color/darker_gray"
android:hint="键盘有搜索"
android:imeOptions="actionSearch"
android:paddingLeft="20dp"
android:singleLine="true" />
</LinearLayout>
另外代码中还需要监听搜索按钮的点击,及隐藏键盘的操作
public class MainActivity extends AppCompatActivity {
private EditText et_search;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_search = findViewById(R.id.et_search);
et_search.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
String searchContent = et_search.getText().toString().trim();
if (TextUtils.isEmpty(searchContent)) {
Toast.makeText(MainActivity.this, "请输入搜索内容", Toast.LENGTH_SHORT).show();
return true;
}
Toast.makeText(MainActivity.this, searchContent, Toast.LENGTH_SHORT).show();
//todo 根据内容进行查询
//隐藏键盘
KeyboardUtils.hideSoftInput(MainActivity.this);
return true;
}
return false;
}
});
}
}
KeyboardUtils这里直接引用了https://github.com/Blankj/AndroidUtilCode中工具类
仅此记录