【问题标题】:Handle upload progress?处理上传进度?
【发布时间】:2019-09-20 09:48:27
【问题描述】:

WhatsApp 如何管理聊天?

【问题讨论】:

  • 如果您能提供一些屏幕截图或图表,说明您拥有什么以及您试图实现/避免什么,那将会很有帮助。您的适配器和查看器的代码也很有用,因为它可以让您了解您目前拥有什么,并为想要发布解决方案的人提供一个起点。没有这些,您收到的建议可能会很模糊,也更难实施。
  • 你应该通过数据改变视图类型,不要试图只改变位置。对于 ex.if(data.isMedia) 返回 mediaViewType;请检查这个例子。 medium.com/@droidbyme/…

标签: android android-layout android-recyclerview


【解决方案1】:

您可以覆盖 Recycler View 的两种方法,这样当您滚动项目时,位置不会改变。一旦项目位置没有改变,您将通过使用位置变量知道将进度视图放在哪里。 覆盖这些方法,

@Override
public long getItemId(int position) {
    return position;
}

@Override
public int getItemViewType(int position) {
    return position;
}

希望对你有所帮助。

【讨论】:

    【解决方案2】:

    加载状态应该附加到适配器拥有的每个数据对象,而不是视图,因此当调用#onBindViewHolder 时,您可以获得传入位置的对象实例,并且您应该在那里显示/隐藏加载视图取决于对象的加载状态。

    不要忘记在每次调用#onBindViewHolder 时处理此显示/隐藏逻辑,以避免循环视图内部进程出现错误的视图状态。

    【讨论】:

      猜你喜欢
      • 2015-02-25
      • 1970-01-01
      • 1970-01-01
      • 2012-08-02
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2023-04-01
      • 2017-12-27
      相关资源
      最近更新 更多