2014-09-14 2 views
0

У меня проблема в списке. Если я прокручу список, все будет хорошо. Но если я нажму на флажок, заголовок исчезнет. Я проверил, notifyOfChange() не запущен. Я думаю, это связано с рисунком взгляда. Кто знает, как сделать заголовок в последний раз. Я использую следующий код:Заголовок в списке как instagram исчезает

@Override 
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 

    //the listview has only few children (of course according to the height of each child) who are visible 
    for(int i=0; i < list.getChildCount(); i++) 
    { 
     View child = list.getChildAt(i); 
     MuscleViewHolder holder = (MuscleViewHolder) child.getTag(); 

     //if the view is the first item at the top we will do some processing 
     if(i == 0) 
     { 
      boolean isAtBottom = child.getHeight() <= holder.headerLayout.getBottom(); 
      int offset = holder.previousTop - child.getTop(); 
      if(!(isAtBottom && offset > 0)) 
      { 

       holder.previousTop = child.getTop(); 
       holder.headerLayout.offsetTopAndBottom(offset); 

       holder.headerLayout.invalidate(); 
      } 

     } //if the view is not the first item it "may" need some correction because of view re-use 
     else if (holder.headerLayout.getTop() != 0) 
     { 
      int offset = -1 * holder.headerLayout.getTop(); 
      holder.headerLayout.offsetTopAndBottom(offset); 
      holder.previousTop = 0; 
      holder.headerLayout.invalidate(); 
     } 
    } 
} 

ответ

0

Проблема решена. Я заменить код на следующий

if(!(isAtBottom && offset > 0)) { 
       holder.setPreviousTop(child.getTop()); 
       if(itNotScroll){ 
        holder.getHeaderLayout().offsetTopAndBottom(-holder.getPreviousTop()); 
        itNotScroll = false; 
       } else { 
        holder.getHeaderLayout().offsetTopAndBottom(offset); 
       } 
       holder.getHeaderLayout().invalidate(); 
      } 

И все же, я сделал так, чтобы можно было открыть только один элемент в expaned ListView

+0

Где определение методов '' setPreviousTop' и getHeaderLayout', что вы создан? – Machado

Смежные вопросы