【问题标题】:SwipeRefreshLayout progress drawable doesn't hide completely on KitKatSwipeRefreshLayout 进度可绘制不会在 KitKat 上完全隐藏
【发布时间】:2019-11-02 10:44:50
【问题描述】:

我有这样的事情:

<ConstraintLayout>
    <SwipeRefreshLayout>
        <RecyclerView>

约束也有一个animateLayoutChanges = "true" 但我确定这不是原因。

当我执行滑动刷新手势时 - 没关系,一切正常,进度按应有的方式隐藏。但是,如果我向下滑动,则在不松开手指的情况下向上滑动以隐藏进度可绘制对象,其中一部分仍然可见。

仅在 4.4 及以下版本中出现。

【问题讨论】:

  • 添加您的 XML 代码

标签: android android-layout android-4.4-kitkat swiperefreshlayout


【解决方案1】:

当方向改变或您手动设置操作栏大小时,操作栏可能会变细。将在成功滑动手势后进度微调器应重置为当前操作栏大小的视图顶部的偏移量(以像素为单位)。

TypedValue typedValue = new TypedValue();
getActivity().getTheme().resolveAttribute(android.support.v7.appcompat.R.attr.actionBarSize, typedValue, true);
mSwipeRefreshLayout.setProgressViewOffset(false, 0, getResources().getDimensionPixelSize(typedValue.resourceId));

解决方案取自另一个问题的答案:swipeRefreshLayout

首先测试这是否对您有帮助:mSwipeRefreshLayout.setProgressViewOffset(false, 0, 64) 或者可能比 64 大一点

【讨论】:

  • 是的,它确实解决了我的问题,虽然它看起来像一个 hack。我也使用的不是 android.support.v7.appcompat.R.attr.actionBarSize,而是 androidx.appcompat.R.attr.actionBarSize。当我也更改此方法的第二个参数时,我的问题似乎消失了。即,不是 0,而是例如 -pixel-size-of-actionbar。但这会改变滑动的灵敏度。到目前为止,我仍在尝试为我的情况找到更准确的值。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-10
  • 1970-01-01
  • 1970-01-01
  • 2016-03-25
  • 1970-01-01
  • 2019-07-22
  • 1970-01-01
相关资源
最近更新 更多