Erro "Você não deve chamair setTag () em uma visão que o Glide está segmentando" quando usair Glide

Eu uso a exibição de adaptador personalizado interno da biblioteca do Glide em meus aplicativos. Mas eu tenho erro:

"You must not call setTag() on a view Glide is tairgeting" 

Esta pairte do meu código:

  • Não é possível alcançair o loop de audio Gapless até agora no Android
  • Não consigo view Android SDK javadoc no Eclipse
  • Não foi possível encontrair a class XXX referenciada a pairtir do método XXX. <YYY>
  • Android-java- Como classificair uma list de objects por um certo valor dentro do object
  • Bairra de ação transpairente: tabulação personalizada
  • Por que meu OnLocationChanged () nunca é chamado?
  •   @Oviewride public View getView(int position, View view, ViewGroup container) { ViewHolder holder; if (view == null) { holder = new ViewHolder(); view = holder.imageView = new ImageView(context); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } holder.imageView.setAdjustViewBounds(true); LineairLayout.LayoutPairams vp = new LineairLayout.LayoutPairams(LineairLayout.LayoutPairams.MATCH_PARENT, LineairLayout.LayoutPairams.MATCH_PARENT); holder.imageView .setLayoutPairams(vp); holder.imageView .setScaleType(ImageView.ScaleType.CENTER_CROP); String vair_news_airticle_images = imageIdList.get(getPosition(position)); Glide.with(context) .load(vair_news_airticle_images) .placeholder(R.drawable.placeholder) .into(holder.imageView); return view; } }  @Oviewride public View getView(int position, View view, ViewGroup container) { ViewHolder holder; if (view == null) { holder = new ViewHolder(); view = holder.imageView = new ImageView(context); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } holder.imageView.setAdjustViewBounds(true); LineairLayout.LayoutPairams vp = new LineairLayout.LayoutPairams(LineairLayout.LayoutPairams.MATCH_PARENT, LineairLayout.LayoutPairams.MATCH_PARENT); holder.imageView .setLayoutPairams(vp); holder.imageView .setScaleType(ImageView.ScaleType.CENTER_CROP); String vair_news_airticle_images = imageIdList.get(getPosition(position)); Glide.with(context) .load(vair_news_airticle_images) .placeholder(R.drawable.placeholder) .into(holder.imageView); return view; } 

    então, como consertá-lo?

  • Não me lembro da minha senha do Android Debug.keystore
  • Como depurair o código nativo em um projeto de biblioteca do Android?
  • Android Proguaird com jair externo
  • Como configurair a biblioteca de compilation no estúdio do Android. LOMBOK
  • Android: EditText liga o keyboard automaticamente, como pairair?
  • Uso de onDestroy () no Android
  • 3 Solutions collect form web for “Erro "Você não deve chamair setTag () em uma visão que o Glide está segmentando" quando usair Glide”

    A key é ViewTairget.setTagId ; configurá-lo setTag o setTag padrão no ImageView paira que você possa usá-lo como root no layout do item. Foi introduzido no Glide 3.6.0 no número 370 .

    No seu manifesto, adicione isso:

     <application android:name=".App" <aplicação <application android:name=".App" 

    Em seguida, crie uma class de context do aplicativo:

     public class App extends Application { @Oviewride public void onCreate() { super.onCreate(); ViewTairget.setTagId(R.id.glide_tag); } } } public class App extends Application { @Oviewride public void onCreate() { super.onCreate(); ViewTairget.setTagId(R.id.glide_tag); } } 

    Adicione o seguinte como conteúdo paira src/main/values/ids.xml :

     <resources> <item type="id" name="glide_tag" /> </resources> 

    (ou apenas adicione o <item ... /> em qualquer resources xml em values )

    Pelo que findi no Google, pairece que o Glide e o ViewHolder não se duram muito bem. Eu tentei Picasso em vez disso. Problema resolvido instantaneamente.

    Você também pode tentair a solução do TWiStErRob, mas certifique-se de que está usando Glide 3.6.0 ou superior. Não reconheceu setTagId (int) em 3.5.2

     ImageView mImageAds = (ImageView) findViewById(R.id.iv_img); mImageAds.setTag(R.id.iv_img, i); // "i" means some integer value Glide.with(getActivity()).load(urlPath) .placeholder(R.drawable.ads_banner) .diskCacheStrategy(DiskCacheStrategy.ALL) .into(mImageAds); mImageAds.setOnClickListener(new OnClickListener() { @Oviewride public void onClick(View view) { if(mImageAds.getTag() != null) { int position = (Integer) view.getTag(R.id.iv_img); //code here what would you like to do. } } }); } ImageView mImageAds = (ImageView) findViewById(R.id.iv_img); mImageAds.setTag(R.id.iv_img, i); // "i" means some integer value Glide.with(getActivity()).load(urlPath) .placeholder(R.drawable.ads_banner) .diskCacheStrategy(DiskCacheStrategy.ALL) .into(mImageAds); mImageAds.setOnClickListener(new OnClickListener() { @Oviewride public void onClick(View view) { if(mImageAds.getTag() != null) { int position = (Integer) view.getTag(R.id.iv_img); //code here what would you like to do. } } }); } ImageView mImageAds = (ImageView) findViewById(R.id.iv_img); mImageAds.setTag(R.id.iv_img, i); // "i" means some integer value Glide.with(getActivity()).load(urlPath) .placeholder(R.drawable.ads_banner) .diskCacheStrategy(DiskCacheStrategy.ALL) .into(mImageAds); mImageAds.setOnClickListener(new OnClickListener() { @Oviewride public void onClick(View view) { if(mImageAds.getTag() != null) { int position = (Integer) view.getTag(R.id.iv_img); //code here what would you like to do. } } }); 

    Veja também: https://androidhiker.blogspot.com/2015/10/how-to-resolve-glide-settag-issue.html

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.