在寻找解决方案以便将建议清单放在键盘前时,我已经非常疲惫。
键盘背后有更多建议。 当我通过将列表放在键盘前触摸/滚动此列表时,我希望能够看到这些建议。 我已经检查了许多类似的问题,但没有任何希望有效地这样做。 在THIS QUESTION上提出的建议无法解决所有设备的问题。 我也见过THIS QUESTION,但它没有帮助解决问题。
是否有任何建议如何解决此问题。
答案 0 :(得分:0)
这是由于布局问题。基本上您的键盘具有焦点,因为用户正在写入,但您想要显示下拉列表。但是如果你看到下拉列表,你将看不到键盘,用户每次想要继续写作时都必须关注EditText
。所以基本上你看到的行为是正确的IMO。
这里有2个选项:
1)更改布局,以便帮助中心从屏幕顶部显示,并且有足够的高度显示其所有建议。
2)限制要显示的下拉项目。由于没有本地实现方法,因为没有maximumSuggestions
选项,您可以获取其中一行的高度并将其乘以X倍(X为要显示的行数)并使用{{1}设置它的高度。有关此here的更多信息。
答案 1 :(得分:-2)
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(viewResourceId, parent, false);
holder = new ViewHolder();
init(convertView, holder);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
convertView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
InputMethodManager imm = (InputMethodManager) getContext()
.getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(
searchView.getWindowToken(), 0);
}
return false;
}
});
setView(position, holder);
return convertView;
}