Intereting Posts
Как прокрутить в начало длинного макета ScrollView? Как получить доступную высоту экрана минус панель навигации в HoneyComb? Как получить список доступных / установленных шрифтов в android? Уведомление Android Wear предотвращает мигание значка при обновлении Должна ли быть опция для фрагментов для сохранения событий щелчка в их иерархии представлений? Автоматическое обновление для (частных) приложений для Android В чем разница между alignBaseline и alignBottom в Android? Как я могу скопировать содержимое данных / в SDCard / без использования adb? Как получить непрерывное событие mousemove при использовании мобильного браузера Android? Файлы Android .xml: почему предопределенные цвета не работают для меня? GetHeight возвращает 0 для всех объектов Android UI Ионный эмулятор ios работает только с –livereload В приложении Android toolbar.setTitle не действует – имя приложения отображается как заголовок Перенос приложений Java на платформу Android Как включить проект Java в проект Android?

Ошибка «Вы не должны вызывать 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