Intereting Posts
Автономное распознавание речи в Android (JellyBean) BufferQueue был оставлен: при воспроизведении видео с помощью TextureView Как заставить панель поиска Search Search заполнить всю панель действий? Использование MultiDexApplication приводит к тому, что тест Robolectric для класса приложения прерывается Как найти идентификатор фрагмента? В качестве альтернативы, как мне предоставить фрагмент ID? FragmentPagerAdapter не восстанавливает фрагменты при изменении ориентации Одноплатный однопользовательский вход в Google Plus: onConnected никогда не вызывается в новой установке PopupBackground глюки с материальным дизайном Разница между GL10 и GLES10 на Android Кнопка входа в Google Android и кнопка Facebook sdk 4+ Как обнаружить неиспользуемые ресурсы в Xamarin.Android? MediaRecorder – код перестает работать после обновления прошивки Android: управление эмулятором отключено в перспективе DDMS NullPointerException в android.support.v7.app.ActionBarImplICS.getThemedContext Android EditText внутри ListView не будет сфокусирован

SetAlpha () on onBindView в RecyclerView не работает на первом дисплее

Используя следующий код в RecyclerView.Adapter:

onBindViewHolder(VH holder, int position){ holder.itemView.setAlpha(0.5f); } 

При первом показе элемента Alpha не будет отображаться. Однако, если вы покидаете экран и возвращаетесь, тогда точно отображается Alpha. Значение устанавливается, но не отображается, пока оно не будет показано снова. Любые идеи о том, как заставить setAlpha () вступать в силу при первом просмотре.

После дальнейшего исследования это происходит только при использовании аниматора (например, android.support.v7.widget.DefaultItemAnimator), который очищает все альфа-файлы для представления. Вы можете использовать

RecyclerView.setItemAnimator(null);

И альфа останется установленным

Обязательно установите setAlpha () во время создания держателя,

 class ViewHolder extends RecyclerView.ViewHolder{ ... ... public ViewHolder(View v){ super(v); ... ... itemView.setAlpha(0.5f); } } 

Не только внутри onBindViewHolder()

 onBindViewHolder(VH holder, int position){ holder.itemView.setAlpha(0.5f); }