替代在ViewHolder RecyclerView适配器中添加动态视图

时间:2016-07-12 16:43:23

标签: android android-recyclerview android-viewholder

我目前正在添加ImageView并在ViewHolder中设置图像。创建时间不平滑,第一次滚动也不顺畅。在视图中拥有平滑动态视图的任何建议或替代方法吗?

ViewHolder

class ViewHolderRecipientExpanded extends RecyclerView.ViewHolder {
    private LinearLayout mFlagLayout;
    //

    public ViewHolderRecipientExpanded(View v) {
        super(v);
        mFlagLayout = (LinearLayout) v.findViewById(R.id.flagLayout);
        //
    }

    public void initiateRecipientsDetails() {
        Recipient recipient = objectList.get(getAdapterPosition());
        int totalAmountOfCountries = recipient.getFlags() != null ? recipient.getFlags().size() : 0;
        // 
        int countriesLimitedToThree = recipient.getFlags() != null ? (totalAmountOfCountries > 3 ? 3 : totalAmountOfCountries) : 0;
        View imageView;
        ImageView image;
        Drawable drawable;
        for (int i = 0; i < countriesLimitedToThree; i++) {
            imageView = inflater.inflate(R.layout.view_image_flag, null);
            image = (ImageView) imageView.findViewById(R.id.image);
            drawable = new BitmapDrawable(context.getResources(), recipient.getFlags().get(i).getFlag());
            image.setImageDrawable(drawable);
            mFlagLayout.addView(imageView);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

在图片不在视野中时加载图片asynchronouslycache them in memory。这在加载图像时不会阻止UI线程,即使图像尚未加载,也允许用户滚动。但是,图像实际显示仍需要一些时间。

还有一些很棒的图书馆会为您处理这个问题: