Android:Switch点击后失去焦点

时间:2015-03-01 13:06:09

标签: forms onclick focus android-linearlayout

Hey Hey目前我正在开发一个包含表单的应用程序,其中包含一些edittext字段,一些复选框和一个开关。布局如下所示:

<RelativeLayout>
  <ScrollView>
    <LinearLayout>
       <LinearLayout>
         <TextView></TextView>
         <Checkbox></Checkbox>
       </LinearLayout>
       <LineraLayout>
         <TextView></TextView>
         <EditText></EditText>
       </LinearLayout>
       <LinearLayout>
         <TextView></TextView>
         <Switch></Switch>
       </LinearLayout>
     </LinearLayout>
  </ScrollView>
</RelativeLayout>

现在,如果我单击开关,开关将失去焦点,并且scrollview会滚动到第一个表单元素,即复选框。我已经尝试在switch的上部LinearLayout中使用descendantFocusability属性和“blockDescendants”,但它不起作用。

任何人都知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

好的,我能够自己解决问题。我正在发布我的解决方案,以便对可能遇到同样问题的其他人有所帮助。

在我的代码中有一个特定的函数,它为我的所有表单元素调用setVisibility(View.Visible)方法(这在我的项目中用于显示可能的dependend表单元素,只有当用户点击时才会显示在一个复选框或其他)。 如果我单击开关或复选框,我的代码会调用所有表单元素的setVisibility-Method,也适用于Edittext。这会请求焦点,因此scrollview将此元素滚动到屏幕的中间/焦点。 我通过不调用已经可见的对象的setVisibility方法解决了这个问题。

希望这可能对其他人有帮助;-)

相关问题