Android: Switch 在点击后失去焦点
Android: Switch loses focus after click
嘿嘿,我目前正在开发一个包含表单的应用程序,其中包含一些编辑文本字段、一些复选框和最后的开关。布局如下所示:
<RelativeLayout>
<ScrollView>
<LinearLayout>
<LinearLayout>
<TextView></TextView>
<Checkbox></Checkbox>
</LinearLayout>
<LineraLayout>
<TextView></TextView>
<EditText></EditText>
</LinearLayout>
<LinearLayout>
<TextView></TextView>
<Switch></Switch>
</LinearLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>
现在,如果我单击开关,开关将失去焦点,滚动视图将滚动到第一个表单元素,即复选框。我已经尝试在 Switch 的上部 LinearLayout 中使用带有 "blocksDescendants" 的 descendantFocusability 属性,但它不起作用。
有人知道如何解决这个问题吗?
好的,我自己解决了这个问题。我发布了我的解决方案,以便它可以帮助其他可能遇到相同问题的人。
在我的代码中有一个特定的函数,它为我的所有表单元素调用 setVisibility(View.Visible)
方法(这在我的项目中用于显示可能的依赖表单元素,应该只显示,当用户点击复选框或其他东西)。
如果我单击开关或复选框,我的代码会为所有表单元素以及 Edittext 调用 setVisibility-Method。这会请求焦点,因此滚动视图会将此元素滚动到屏幕的 middle/focus。
我通过不为已经可见的对象调用 setVisibility 方法解决了这个问题。
希望这对其他人有帮助 ;-)
嘿嘿,我目前正在开发一个包含表单的应用程序,其中包含一些编辑文本字段、一些复选框和最后的开关。布局如下所示:
<RelativeLayout>
<ScrollView>
<LinearLayout>
<LinearLayout>
<TextView></TextView>
<Checkbox></Checkbox>
</LinearLayout>
<LineraLayout>
<TextView></TextView>
<EditText></EditText>
</LinearLayout>
<LinearLayout>
<TextView></TextView>
<Switch></Switch>
</LinearLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>
现在,如果我单击开关,开关将失去焦点,滚动视图将滚动到第一个表单元素,即复选框。我已经尝试在 Switch 的上部 LinearLayout 中使用带有 "blocksDescendants" 的 descendantFocusability 属性,但它不起作用。
有人知道如何解决这个问题吗?
好的,我自己解决了这个问题。我发布了我的解决方案,以便它可以帮助其他可能遇到相同问题的人。
在我的代码中有一个特定的函数,它为我的所有表单元素调用 setVisibility(View.Visible)
方法(这在我的项目中用于显示可能的依赖表单元素,应该只显示,当用户点击复选框或其他东西)。
如果我单击开关或复选框,我的代码会为所有表单元素以及 Edittext 调用 setVisibility-Method。这会请求焦点,因此滚动视图会将此元素滚动到屏幕的 middle/focus。
我通过不为已经可见的对象调用 setVisibility 方法解决了这个问题。
希望这对其他人有帮助 ;-)