Intereting Posts
Как вы сериализуете Android Intents? Как запретить TextView разрешать только буквенно-цифровые символы в Android Как создать модное навигационное меню на мобильном устройстве и предотвратить прокрутку тела? Обновите плагин Cordova / Phonegap (3.2.0) в проекте Event.stopImmediatePropagation () не работает в Chrome для Android Ошибка сборки Android в Crosswalk Android объединяет два изображения Не удалось загрузить ресурсы при создании для Android-эмулятора с помощью инструментов Visual Studio для Apache Cordova в Visual Studio 2013 Создание пользовательской функции в sqlite3 в android Android getMenuInflater () в подклассе фрагмента – не может разрешить метод LoopJ AndroidAsyncHttp и JSON POST ARRAY Получить MAC-адрес Bluetooth с помощью adb WearableListView.Item отсутствует в носимой библиотеке поддержки 1.1 Любой пример, показывающий, как войти в систему с помощью Facebook SDK 4.0 на Android, используя собственную кнопку или кнопку Facebook? OnActivityResult вызывается при запуске Activity, а не при его завершении

Как использовать ItemAnimator в RecyclerView?

Я хочу сделать анимацию, когда элемент добавлен или удален из адаптера recyclerview. Я пытаюсь использовать RecyclerView.ItemAnimator следующим образом, но он не работает.

public class MyAnimator extends RecyclerView.ItemAnimator{ @Override public boolean animateAdd(ViewHolder arg0) { Log.d("test","Added Animation"); return false; } @Override public boolean animateChange(ViewHolder arg0, ViewHolder arg1, int arg2, int arg3, int arg4, int arg5) { Log.d("test","Change Animation"); return false; } @Override public boolean animateMove(ViewHolder arg0, int arg1, int arg2, int arg3, int arg4) { // TODO Auto-generated method stub return false; } @Override public boolean animateRemove(ViewHolder arg0) { Log.d("test", "Remove Animation"); return false; } @Override public void endAnimation(ViewHolder arg0) { // TODO Auto-generated method stub } @Override public void endAnimations() { // TODO Auto-generated method stub } @Override public boolean isRunning() { // TODO Auto-generated method stub return false; } @Override public void runPendingAnimations() { // TODO Auto-generated method stub } } 

Я использую следующий код следующим образом.

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view); data=new ArrayList<String>(); // use a linear layout manager mLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(mLayoutManager); animator = new MyAnimator(); mRecyclerView.setItemAnimator(animator); mAdapter = new MyAdapter(data); mRecyclerView.setAdapter(mAdapter); } 

Всякий раз, когда я добавляю новый элемент в набор данных и вызываю mAdapter.notifyDataSetChanged() я ожидал, что Log присутствует в animateAdd(ViewHolder arg0) присутствующем в классе MyAnimator; Но это не придет. Я что-то пропустил. Почему он не работает.

Solutions Collecting From Web of "Как использовать ItemAnimator в RecyclerView?"