0

这个问题似乎被问了很多次,但在尝试了 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);

还有什么我可以做的吗?

4

1 回答 1

0

对于您在 xml 集中的所有 editTextandroid:focusable="false"

对于您的第一个微调器组android:focusable="true"

或者

以编程方式将焦点设置到您需要的字段

于 2013-01-25T12:14:40.677 回答