这个问题似乎被问了很多次,但在尝试了 20 多个不同的想法之后,我仍然有一个问题。
我有一个由(从顶部开始)7 个微调器和几个edittext 组成的膨胀对话框。微调器和编辑文本位于单独的线性布局上。
创建对话框时,焦点转到第一个编辑文本,因为它位于对话框下方,第一个微调器被滚动到视图之外。
我需要的是一种使第一个微调器聚焦或滚动到最上面的方法。
我做了什么?
那么我已经设置了: dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
停止显示软键盘(有效)
manufacturer = (Spinner) entryView.findViewById(R.id.myyarns_add_dialog_manufacturer_spinner);
manufacturer.setFocusable(true);
manufacturer.setFocusableInTouchMode(true);
manufacturer.requestFocus();
这在 onPrepareDialog 或 onCreateDialog 中均无效
然后我尝试设置
weight = (EditText) entryView.findViewById(R.id.myyarns_add_dialog_weight);
weight.clearFocus();
其中 weight 是获得焦点的第一个 edittext 的 id - 仍然 weight 获得焦点
然后我尝试将对话框视图滚动到顶部,但没有做任何事情
ScrollView scroller = (ScrollView) entryView.findViewById(R.id.myyarns_scroll);
scroller.scrollTo(0, 0);
还有什么我可以做的吗?