Разные view для списка

149
30 октября 2019, 13:10

Решил сделать в списке групировку по датам, что то подобное такому:

27 february      
   item1      
   item2   
26 february     
   item1

Возникла проблема в составлении условия по которому дата должна быть добалена в список. Код getItemViewType:

var previousDate = ""
override fun getItemViewType(position: Int): Int {
    val currentDate = batteryStories[position].date.toFormatDate(DATE_FORMAT)
    if(currentDate != previousDate){
       previousDate = currentDate
       return HEADER_VIEW_INDEX
    }
     return BODY_VIEW_INDEX
 }

Данное пробное решение работает только при первичной прогрузке списка и прокрутка проводит к хаосу. В результате нескольких прокруток выходит нечто такое (дата выводиться при первом появлении уникальной даты в списке):

   item1      
   item2   
27 february     
   item1
26 february

Даже при удачном результате мне кажется сравнение строк это не лучший вариант. Как лучше реализовать подобное?

Answer 1

Что бы не было хаоса при прокрутке, нужно в onBindViewHolder() обязательно добавлять вначале явное указание состояния вьюхи (например: myViewHolder.tvDate.setVisibility(View.INVISIBLE)), а дальше уже ставить ей видимость при необходимости. Дело в том что контейнеры в RecyclerView переиспользуются и мы получаем такую вот интересную ситуацию.

READ ALSO
Закрыть listening порт

Закрыть listening порт

Мне нужно закрывать listening порт(например, 12000, который создается java методом serversocketaccept) в определённый момент(неизвестно когда он наступит)

154
“Failed to instantiate java.util.List using constructor NO_CONSTRUCTOR with arguments ”

“Failed to instantiate java.util.List using constructor NO_CONSTRUCTOR with arguments ”

Вызов данного контроллера выдает ошибку:

260
Tomcat не запускает проект

Tomcat не запускает проект

Запускаю этот проект через Tomcat https://githubcom/CaymanJava/online_banking

135
Как узнать что в микрофон что то говорят

Как узнать что в микрофон что то говорят

Сейчас я использую вот такой методМожет есть более хорошие методы?

132