У меня есть RecyclerView
, в которых элементы являются LinearLayout
с несколькими TextViews
как дети. В зависимости от некоторых правил (это определено в onBindViewHolder
), TextViews
может быть скрыт (видимость GONE) или показана.RecyclerView с товарами, которые скрывают/показывают своих детей
Моя проблема в том, что если у меня есть 3 элемента (A, B и C) в RecyclerView
с таким же количеством видимых TextViews
и A сверху списка, B в середине и C внизу , если, например, B должен показать больше TextViews
, чем раньше, в течение короткого периода времени этот элемент (B) будет перекрываться с C, так как он вырос в размере и должен разместить новый видимый TextViews
, которые ранее были с видимостью GONE.
Визуальное представление задачи:
Желаемая ситуация
Текущий и нежелательная ситуация
После бит RecyclerView
вмещает элемент правильно.
Как я могу избежать этого?
EDIT:
В одном из комментариев предлагается, чтобы я мог бы оживить и трансформирует взгляды себя. Это необходимо или есть другой способ сделать это? Если да, то как я могу анимировать и преобразовывать представления?
EDIT 2:
Пробовал этот ответ: Animating items, но проблемы сохраняется. Там есть видимая задержка до обновления RecyclerView
.
EDIT 3:
Я использую этот класс (RecyclerViewCursorAdapter) в качестве основы для адаптера, который заполнит RecyclerView
. Aditionally, я делаю это в onResume
@Override
public void onResume()
{
super.onResume();
if(getActivity().getSupportLoaderManager().getLoader(R.id.myLoaderId) == null)
{
getActivity().getSupportLoaderManager().initLoader(R.id.myLoaderId, null, this);
}
else
{
getActivity().getSupportLoaderManager().restartLoader(R.id.myLoaderId, null, this);
}
}
Попробуйте сделать 'TextViews'' INVISIBLE' вместо 'GONE'. – sonictt1
Можете ли вы опубликовать свой код, показывающий, что происходит? Если данные изменяются, вы должны просто вызвать recyclerView.getAdapter(). NotifyDataSetChanged(); и он должен правильно перерисовать recyclerView. – LNI
@LNI Я делаю это, но, как было сказано, проблема возникает в течение короткого периода времени (я думаю, в то время как обновления 'RecyclerView'), то она отображается правильно. – OneEyeQuestion