使用 时AutoCompleteTextView
,会出现下拉建议列表,并且软件键盘仍然可见。这是有道理的,因为键入随后的字符来缩小列表的效率通常要高得多。
但是如果用户想要浏览建议列表,在软件键盘仍然打开的情况下会变得非常乏味(当设备处于横向时,这将是一个更大的问题)。在没有键盘占用屏幕空间的情况下浏览列表要容易得多。不幸的是,默认行为会在您按下后退键时首先删除列表(即使在后退键的软件版本中,它会显示“按下此键将隐藏键盘”的图像)。
这是一个准系统示例,演示了我在说什么:
public class Main2 extends Activity {
private static final String[] items = {
"One",
"Two",
"Three",
"Four",
"Five"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AutoCompleteTextView actv = new AutoCompleteTextView(this);
actv.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
actv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items));
actv.setThreshold(1);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
ll.addView(actv);
setContentView(ll);
}
}
除了这是不直观的事实(返回键提示暗示将返回到键盘),它使导航AutoCompleteTextView
建议非常令人厌烦。
使第一次后按隐藏键盘,第二次删除建议列表的侵入性最小的方式是什么(例如,onBackPressed()
在每个活动中重新启动并相应地路由它肯定不是理想的)?