标签: android-api-30

Android 某些 EditText 字段不响应长按(API 30+,layout_width 0dp)

我想知道是否还有其他人经历过这个奇怪的错误。我的布局很复杂,但本质上它是带有 EditText 字段的成排视图持有者。

在我将目标 SDK 更新到 API 30 之前,它一直完美运行。

针对 API 30 后,我的一些EditText 字段不响应“焦点触摸事件”(光标手柄不显示,无法长按,也无法选择任何文本)。您仍然可以在字段中输入内容并通过点击移动光标。同样,某些文本字段工作得很好,而其他文本字段则受到此错误的影响。

在此输入图像描述

^ 该图像不是我的应用程序,只是为了显示光标处理程序以供理解。

约束布局和线性布局都有同样的bug。

<!-- in constraint layout -->
<androidx.appcompat.widget.AppCompatEditText
    android:id="@+id/myTextField"
    android:layout_height="wrap_content"
    android:layout_width="0dp"
    app:layout_constraintHorizontal_weight="1"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"/>

<!-- in linear layout -->
<androidx.appcompat.widget.AppCompatEditText
    android:id="@+id/myTextField"
    android:layout_height="wrap_content"
    android:layout_width="0dp"
    android:layout_weight="1"/>
Run Code Online (Sandbox Code Playgroud)

如果我将文本字段宽度更改为wrap_content它,它对于所有文本字段都适用,但这不适合我的设计。我需要文本字段来填充可用空间。

我什至尝试手动将宽度设置为随机 dp 值,但它仍然不起作用。

我已经在 < API 30 设备上进行了测试,一切都很好。

我也有用户在生产中报告过这个问题。

我错过了什么?为什么这不适用于 API 30+?

还有另一种方法可以让 EditText 字段填充空间吗?

更新(仍未解决):

我已将 Android Studio 更新到最新版本Arctic Fox 2020.3.1.。我还将 gradle 更新为7.0.3,将 kotlin 更新为1.5.31,并将我的所有库更新为最新版本。我正在使用 …

android android-appcompat android-edittext android-wrap-content android-api-30

5
推荐指数
1
解决办法
318
查看次数

当我将 targetSDK 设置为 API 30 后,我的 Android 应用程序无法正常工作;我如何找出原因?

Google称,从 2021 年 8 月起,所有新的 Google Play 应用程序除了派生为 Android App Bundle 外,还需要以 API 30 为目标。此外,从 2021 年 11 月开始,即使是应用程序更新也需要符合要求。

因此,我将我的应用程序从目标 API 29 更新到 API 30,并且某些功能出现问题。我如何找出原因?从Google 给出的更改列表来看,这一点并不明显,因为这不仅仅是检查某些已弃用的 API 是否正在使用的问题。

理想情况下,如果 Android Studio 可以提供一种方法来查看 API 30 中的功能如何影响我的应用程序行为,那就太酷了。

android android-api-levels android-api-30

2
推荐指数
1
解决办法
3061
查看次数