2011-08-09 3 views
0

getView를 재정의하는 아래 코드가 있습니다. 원하는 것은 항상 첫 번째 행에 일부 사용자 정의보기가 표시되어야하고이 아래의 항목 셀에는 일반 셀이 표시됩니다. 내 코드는 아무런 오류없이 잘 작동하지만 첫 번째 셀을 스크롤 할 때 스크롤을 거꾸로 계속 사용하면 반복됩니다. 아래 코드를 참조하십시오. 아무도 답변을 찾을 수없는 경우 큰 도움이됩니다. 감사합니다스크롤 할 때 목록보기 사용자 정의 문제

@Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      ViewHolder holder = null; 
      int type = getItemViewType(position); 
      holder = new ViewHolder(); 
      System.out.println("getView " + position + " " + convertView + " type = " + type); 
      if (convertView == null && position !=0) { 
       System.out.println("inside if " + position); 

       //holder = new ViewHolder(); 
       switch (type) { 
        case TYPE_ITEM: 
         convertView = mInflater.inflate(R.layout.item1, null); 
         holder.textView = (TextView)convertView.findViewById(R.id.text); 
         holder.textView.setText(mData.get(position)); 

         break; 
        case TYPE_SEPARATOR: 
         convertView = mInflater.inflate(R.layout.item2, null); 
         holder.textView = (TextView)convertView.findViewById(R.id.textSeparator); 
         holder.textView.setText(mData.get(position)); 
         break; 
       } 
       convertView.setTag(holder); 
      }else if(position == 0){ 

       System.out.println("inside else if " + position); 
       convertView = mInflater.inflate(R.layout.header, null); 
       holder.textView = (TextView)convertView.findViewById(R.id.text); 


      }else { 
       System.out.println("inside else " + position); 

       holder = (ViewHolder)convertView.getTag(); 
       try{ 
       holder.textView.setText(mData.get(position)); 
       }catch(Exception ex){ 
        System.out.println("caught exception is "+ ex.getMessage()); 
       } 
      } 

      return convertView; 
     } 
+0

http://stackoverflow.com/questions/6982989/android-listview-scrollig-too-slow/6983209#6983209를 참조 할 수 있습니다. – Shash316

답변

1

당신은 아마 getItemViewType 방법을 덮어하고 각 유형에 대해 다른 INT를 반환해야 (0으로 시작!). 따라서 getViewTypeCount 메소드도 덮어 써야합니다.

ListViewheader view을 사용하면 어떨까요?

관련 문제