【问题标题】:ListView with EditText Keyboard IssuesListView 与 EditText 键盘问题
【发布时间】:2012-12-25 01:08:51
【问题描述】:

在我的应用程序中,我有一个 Activity,其中包含一个 Fragment,其中包含一个带有各种 EditTexts 的 ListView,如下所示:

Activity -> Fragment -> ListView -> EditTexts

当点击 EditText 时,会显示软键盘并发生以下两种情况之一:

  • 如果 Activity 尚未失去焦点(例如,通过访问 Android 主屏幕),则整个 Activity 会略微向上滑动,以便 EditText 不会被键盘遮挡。

  • 如果 Activity 在某个点失去焦点(再次,例如访问 Android 主屏幕),ListView 会在键盘上方滚动 EditText(Activity 保持静止),但 EditText 失去焦点!

这些结果都不理想。理想情况下,我总是希望 ListView 在键盘上方滚动 EditText 而不会使 EditText 失去焦点。谁能指出我正确的方向和/或解释为什么我现在看到同一操作的两种不同行为?

编辑:作为参考,我正在为 Android 4.2 构建并在 Nexus 7 平板电脑上进行测试。

【问题讨论】:

    标签: android listview keyboard android-edittext


    【解决方案1】:

    问题在于,当您在 ListView 行中使用 EditText 时,您的 ListView 可能会被重绘以为键盘腾出空间。并且当你的 ListView 被重绘时,系统不会记住光标之前的位置。

    如果您在 ScrollView 中使用 LinearLayout,似乎不会发生同样的问题 而不是 ListView。这听起来很愚蠢,但确实有效。

    【讨论】:

      【解决方案2】:

      最近我也遇到了这个问题,我通过在 AndroidManifest.xml 中添加 android:windowSoftInputMode="adjustPan" 解决了这个问题。这不会导致列表视图重绘,所以编辑文本会不要失去焦点。

      【讨论】:

        猜你喜欢
        • 2012-10-03
        • 1970-01-01
        • 2014-02-20
        • 2011-10-17
        • 2012-01-05
        • 1970-01-01
        • 1970-01-01
        • 2011-01-17
        • 2014-10-19
        相关资源
        最近更新 更多