【问题标题】:Android: Switch loses focus after clickAndroid:点击后开关失去焦点
【发布时间】:2015-03-01 13:06:08
【问题描述】:

嘿嘿,目前我正在开发一个包含表单的应用程序,其中包含一些编辑文本字段、一些复选框和最后的开关。布局如下所示:

<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 属性,但它不起作用。

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: android forms onclick focus android-linearlayout


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-10-13
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 1970-01-01
      • 2011-01-04
      • 1970-01-01
      • 2012-04-30
      • 2017-08-06
      相关资源
      最近更新 更多