2016-07-12 11 views
0

現在、ImageViewsを追加して、ViewHolder内に画像を設定しています。作成時間が滑らかではなく、最初のスクロールスルーも滑らかではありません。ビューホルダ内でスムーズな動的ビューを得るための提案や代替方法はありますか?ViewHolder RecyclerViewアダプタの内部に動的ビューを追加する代わりに

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); 
     } 
    } 
} 

答えて

0

彼らはビューが表示されていないとき、あなたのイメージasynchronously、およびcache them in memoryをロードします。これにより、イメージをロードするときにUIスレッドがブロックされず、イメージがまだロードされていない場合でもスクロールできます。画像が実際に表示されるまでにはまだ時間がかかるでしょう。

もあなたのためにこれを処理する偉大なライブラリの数があります

関連する問題