小编Vic*_*ina的帖子

如何在AOSP中更改应用程序无响应(ANR)超时

如何更改AOSP源代码中的应用程序无响应(ANR)超时?默认超时为5秒,但该设置在何处以及如何更改?

android code-analysis android-source android-anr-dialog

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

当键盘打开时,RecyclerView 视图中的 EditText 被分离

我正在尝试在 RecyclerView 中创建一个具有可变数量的 EditText 元素的长表单。布局由一个 FrameLayout、一个用于表单部分的 RecyclerView 组成,然后是 CardView 中嵌套的 RecyclerView 以保存该部分的所有表单元素(参见下面的动画)。

通常,当一个元素被聚焦时,键盘会出现,窗口被调整大小,视图被滚动,因此元素出现在键盘上方。我遇到的问题是当在屏幕底部和部分顶部选择一个元素时,窗口会调整大小并且 RecyclerView 分离该部分的视图,导致 EditText 在尝试聚焦时不存在。这表现为键盘瞬间打开,然后在焦点返回到 FrameLayout 时关闭。

RecyclerView 焦点问题

android:windowSoftInputMode="adjustResize"在我的活动中使用并且不想使用,adjustPan因为它不能提供最佳的用户体验。

我已经尝试向 EditText 添加一个点击侦听器,然后向上滚动 RecyclerView 以便在窗口调整大小时视图不会被破坏,但这感觉很糟糕,并且很难准确地检测到 RecyclerView 应该滚动多远。你也会得到一些奇怪的跳跃。为此,您必须关闭 EditText 的可聚焦性,这也不理想,因为它破坏了导航和可访问性。

尝试做类似的事情recyclerView.getRecycledViewPool().setMaxRecycledViews(0, SECTION_COUNT);也不起作用,因为它不会阻止视图被分离。

当针对键盘调整窗口大小以便 EditText 获得焦点时,如何防止视图分离?

android android-edittext android-recyclerview

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