【发布时间】:2015-01-21 02:02:32
【问题描述】:
使用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()并相应地路由它肯定不是理想的)使第一次后按隐藏键盘,以及第二个删除建议列表?
【问题讨论】:
-
您找到解决方案了吗?
标签: android keyboard android-softkeyboard autocompletetextview onbackpressed