Intereting Posts

Ошибка «Вы не должны вызывать setTag () при просмотре. Glide нацеливается на« когда используется Glide

Я использую внутренний интерфейс адаптера библиотеки Glide в своих приложениях. Но у меня ошибка:

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

Эта часть моего кода:

  @Override 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); LinearLayout.LayoutParams vp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); holder.imageView .setLayoutParams(vp); holder.imageView .setScaleType(ImageView.ScaleType.CENTER_CROP); String var_news_article_images = imageIdList.get(getPosition(position)); Glide.with(context) .load(var_news_article_images) .placeholder(R.drawable.placeholder) .into(holder.imageView); return view; } 

Так как это исправить?

Solutions Collecting From Web of "Ошибка «Вы не должны вызывать setTag () при просмотре. Glide нацеливается на« когда используется Glide"

Ключ ViewTarget.setTagId ; Установка его освободит значение setTag по умолчанию для ImageView чтобы вы могли использовать его как root в макете элементов. Он был введен в Glide 3.6.0 в выпуске № 370 .

В вашем манифесте добавьте следующее:

 <application android:name=".App" 

Затем создайте класс контекста приложения:

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

Добавьте в качестве содержимого для src/main/values/ids.xml :

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

(Или просто добавить указанный выше <item ... /> в любые resources xml в values )

Из того, что я нашел из Googling, похоже, что Glide и ViewHolder не слишком ладят. Вместо этого я попробовал Пикассо. Проблема решена мгновенно.

Вы также можете попробовать решение от TWiStErRob, но убедитесь, что используете Glide 3.6.0 или выше. Он не распознал setTagId (int) на 3.5.2