Android:这只是一个自定义ListView吗?

时间:2012-10-29 07:53:39

标签: android listview

Feed 四方 Android应用程序如下所示:

enter image description here

一个带有实际帖子的矩形框,下面是一个像 10个人这样的文字等等。

这只是一个listView,其中包含具有边距和不同背景的实际内容,以及它下面的TextViews。

因为当我有一个带有ImageView和5-6 TextViews的复杂ListView时,加载UI需要很多时间。

我在iOs工作的一位朋友说而不是自定义ListView项目,使用ImageView,它看起来像一个带有图像和textview的自定义视图。这使得装载速度更快。但是当然要实现这样的事情需要很多。

我只是想知道,如果它只是另一个自定义列表视图?

我加载用户界面的延迟是由于其他原因造成的?

这些技术在android中也可用吗?

谢谢

2 个答案:

答案 0 :(得分:2)

可能是具有复杂子视图的ListView。也可以是ExpandableListView

有几个原因导致它的加载速度比以前使用的速度快得多:

  1. 图像可能已经缓存在文件系统上,因此它从本地存储加载而不是下载图像。
  2. 图像已经是正确的尺寸,因此无需调整尺寸。
  3. 图像加载是在后台线程上完成的,以便在将图像加载到内存时不会延迟UI。

答案 1 :(得分:0)

您可以在Adapter.getView()中展开每个ListView项的复杂布局,并根据要渲染的项目对象,在不需要的视图上删除(View.setVisibility(View.Gone))。 / p>

如果您想重复使用展开的布局,请不要忘记将再次设置的可见性设置为View.VISIBLE。

我已在我的代码中执行此操作:

        if (post.getImageURL() != null && !post.getImageURL().isEmpty()) {
            holder.image.setVisibility(View.VISIBLE);
            holder.image.setScaleType(ScaleType.FIT_CENTER);

            displayImage(post.getImageURL(), holder.image);
        } else {
            holder.image.setVisibility(View.GONE);
        }

在这种情况下,我隐藏了一个可选图像。