gpt4 book ai didi

android - MotionLayout 打破(嵌套) subview 的重绘

转载 作者:行者123 更新时间:2023-12-04 13:56:48 25 4
gpt4 key购买 nike

我遇到了 MotionLayout 中 View 不刷新的问题.

似乎在某些时候 MotionLayout 的刷新/重绘机制被破坏并且 subview (包括嵌套的 subview )在屏幕上更新自己时出现随机问题。到目前为止我所经历的:

  • RecyclerView有时不刷新。当有新数据可用时会发生这种情况,我正在使用 寻呼库来填充数据。当我在那里获得新数据时,我已通过滚动 1 个像素的解决方法修复它 - recyclerView.smoothScrollBy(0,1) .之后 RecyclerView开始重绘自己就好了。
  • 当键盘打开时,它会随机打乱嵌套 subview 的重绘。 github有问题⁠here一个人通过添加 EditText 来重现所有这些致官方MotionLayout例子。我看到的问题的一些示例:
  • 我正在使用 TextInputLayoutapp:endIconMode="clear_text"MotionLayout -> ConstraintLayout -> TextInputLayoutX当我开始输入时(也在关闭键盘后),有时不显示按钮。
  • TextView部分重绘!我正在显示 "No Results""No Posts" TextView 中的文本, 基于一些逻辑在它们之间切换,而不是只刷新整个文本"No"显示在 UI 中。我已经调试过了,Layout Inspector 说一切正常, TextView 值为"No Results" ,但我没有在屏幕上看到它。
  • 其他一些动画被破坏,例如嵌套SwipeRefreshLayout的不确定进度动画

  • 重要提示:当我进行转换时,所有刷新/重绘问题都已修复!当我遇到 3 个嵌套的 subview 被卡住/部分绘制的困惑状态时,我只需要按下一个触发我的转换的按钮,它们都在愉快地重绘自己!

    请让我知道这是否是一个已知问题以及是否有解决方法。我可以做不可见的 1 像素转换,但我什至无法检测到 MotionLayout刷新被破坏,处理键盘和 RecyclerView 的新数据似乎并未涵盖所有情况。否则,我将不得不搬回 ConstraintLayout并考虑实现惊人的 OnSwipe我自己的功能(如果 ConstraintLayout 甚至可能的话)。

    最佳答案

    不是真正的答案,但评论太长了:

    由于您面临可能有多个根本原因的多个问题,我建议创建一个沙盒项目并在安全简单的环境中一次重现每个问题。

    在我看来,您似乎对分页库有一个问题(在这种情况下不是 motionLayout),而 EditText 有另一个问题。

    您应该在没有 ML 的情况下检查您的分页代码,并在没有任何 ScrollView 的情况下检查您的 EditText 问题。我知道这没有多大帮助,但也许是如何解决这些问题的指南。请注意,MotionLayout 仍处于测试阶段,尤其是 2.0.0-beta02 和 beta03 版本,因为回归错误非常困惑。更新到最新版本(截至目前 beta04)或继续使用稳定版本。

    有时搜索 the official tickets for MotionLayout 也有帮助。

    关于android - MotionLayout 打破(嵌套) subview 的重绘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61014379/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com