当前位置: 首页 > 编程笔记 >

Android平滑的加载项目

范鸿
2023-03-14
本文向大家介绍Android平滑的加载项目,包括了Android平滑的加载项目的使用技巧和注意事项,需要的朋友参考一下

示例

如果您RecyclerView从网络中加载数据中的项目(通常是图像)或执行其他处理,这可能会花费大量时间,并且最终可能会在屏幕上显示项目,但未完全加载。为避免这种情况,您可以扩展现有LinearLayoutManager项以在屏幕上可见之前预加载许多项:

package com.example;

import android.content.Context;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.OrientationHelper;
import android.support.v7.widget.RecyclerView;

/**
 * A LinearLayoutManager that preloads items off-screen.
 * <p>
 * Preloading is useful in situations where items might take some time to load
 * fully, commonly because they have maps, images or other items that require
 * network requests to complete before they can be displayed.
 * <p>
 * By default, this layout will load a single additional page's worth of items,
 * a page being a pixel measure equivalent to the on-screen size of the
 * recycler view.  This can be altered using the relevant constructor, or
 * through the {@link #setPages(int)} method.
 */
public class PreLoadingLinearLayoutManager extends LinearLayoutManager {
  private int mPages = 1;
  private OrientationHelper mOrientationHelper;

  public PreLoadingLinearLayoutManager(final Context context) {
    super(context);
  }

  public PreLoadingLinearLayoutManager(final Context context, final int pages) {
    super(context);
   this.mPages= pages;
  }

  public PreLoadingLinearLayoutManager(final Context context, final int orientation, final boolean reverseLayout) {
    super(context, orientation, reverseLayout);
  }

  @Override
  public void setOrientation(final int orientation) {
    super.setOrientation(orientation);
    mOrientationHelper = null;
  }

  /**
   * Set the number of pages of layout that will be preloaded off-screen,
   * a page being a pixel measure equivalent to the on-screen size of the
   * recycler view.
   * @param pages the number of pages; can be {@code 0} to disable preloading
   */
  public void setPages(final int pages) {
   this.mPages= pages;
  }

  @Override
  protected int getExtraLayoutSpace(finalRecyclerView.Statestate) {
    if (mOrientationHelper == null) {
      mOrientationHelper = OrientationHelper.createOrientationHelper(this, getOrientation());
    }
    return mOrientationHelper.getTotalSpace() * mPages;
  }
}
           

 类似资料:
  • import { Scroll } from 'feui'; components: { [Scroll.name]: Scroll, }, data() { return { items: [], infiniteCount: 0, hasHeader: true }; } methods: { onRefresh(done) {

  • 本文向大家介绍Android实现滑动加载数据的方法,包括了Android实现滑动加载数据的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android实现滑动加载数据的方法。分享给大家供大家参考。具体实现方法如下: EndLessActivity.java如下: listview下部是按钮控制: 希望本文所述对大家的Android程序设计有所帮助。

  • 我正在使用$location.path()在我的angular网站中加载新视图。我的页面看起来像: 我会根据需求(索引、主页、登录等)更改ng视图。有时导航看起来很慢(0.1秒时页面内会出现一些小故障),有没有办法让导航变得即时? 此外,我尝试了NG-动画,改善了这种感觉,但并不完全。我想预先加载我的“观点”将是一个解决方案... 编辑: 通过添加以下内容,感觉有所改善:

  • 问题是我使用的是Slick Carousel,但每当我将div添加到Slick的脚本中时,我使用的是内容移动到不同的行中。 这就是当我将滚动div添加到Slick脚本时所发生的情况。 我几乎可以肯定这是一个CSS问题,但我已经尝试了很多,但不能使它工作。这是我的密码... 油滑 这是相关的CSS 这里有一个现场演示滚动到底部

  • 我有一个在Android Studio上从头开始的项目。布局编辑器工作正常。添加Google Play服务库后,现在当我打开布局XML文件时,在“设计”选项卡中出现以下错误:“渲染问题:加载平台渲染库失败” 在文本选项卡中,my TextView组件的所有属性都有一个警告“未知属性android:[…]”其中[…]是正在声明的属性。 有人知道如何解决这个问题吗?

  • 我已经编写了一些代码,可以从高度图中渲染3D世界,现在我也编写了允许行走的代码。问题是,当高度增加时,动画几乎“跳跃”,因为每个单元都相当大。有没有一种简单的方法可以让动画更流畅?(一般来说,我对OpenGL和3D渲染非常陌生,所以我不想讨论插值和更复杂的事情。)