2012-03-21 2 views
1

CustomListAdapter를 사용하여 ListView를 동적으로 채우는 것은 정확하게 과도하게 작성되지 않았습니다! 이것에 대한 정보를 찾는 것은 매우 어려웠지만 마침내 제대로 작동하게되었습니다.Android.Views.ViewStates.CustomListAdapter의 결과로 인해 예기치 않은 결과가 발생합니다.

Abstractly 내 listview CustomListAdapter에서 상자 묶음과 각각의 내용을 보여주는 목록을 채 웁니다. 나 혼자 사용하지 않는 TextViews를 떠나으로

Box 0 
-------- 
shirts 
shoes 
ties 
boxers 

Box 1 
------- 
laptops 

Box 2 
----- 
tennis racket 
basketball 
diving mask 

Box 3 
---------- 
tiles 
grout 

상자

당 (textViews의 LinearLayout을 통해) 허용 최대 4 개 개의 항목으로 길이있다 (즉, 빈은 & 볼)을 CustomListAdapter 잘 작동합니다. 그러나 빈 줄이 모두 표시되면 목록이 매우 길어집니다. < 4 개의 항목 (예 : 상자 1)이있는 LinearLayouts에서 사용되지 않은 TextView의 가시성을 "사라짐"으로 설정하여 빈 수직 공간을 축소하려고하면 데이터가 예측할 수없는 방식으로 뒤죽박죽이됩니다. 즉 "다이빙 마스크"가 상자 2 대신 상자 1에 나타나고 상자 0의 내용이 사라집니다.

다른 사람이 x.Visibility = ViewStates.Gone을 CustomListAdapter에서 사용할 때이 예측할 수없는 경험이 있습니까? 사용하지 않는 TextViews가 차지하는 수직 공간을 없애기 위해 Android.Views.ViewStates.Gone을 설정하는 것보다 더 좋은 방법이 있습니까?

+0

소리가 재생 문제와 같습니다. 어댑터 코드를 게시하십시오. – dmon

+0

"이 상자 2 대신 상자 1에 표시되고 상자 0의 내용이"다른 소리를 잘못하고있는 것처럼 소리가 나게됩니다. 'getView' 내부에서 TextViews를 숨기는 코드는 어디에 있습니까? – zapl

+0

ListView 항목을 숨기지 않고 기본 항목에서 항목을 제거해야합니까? – Matthew

답변

1

dmon, zapl, & Matthew : 답장을 보내 주셔서 감사합니다. 다음은 GetView 재정의 함수 내부의 일부 코드입니다.

var tv_class_title =view.FindViewById(Resource.Id.tv_class_title) as TextView; 
var tv_codex =view.FindViewById(Resource.Id.tv_codex) as TextView; 

       //class title 
if (item.class_title.Length>0){ 
    tv_class_title.SetText(item.class_title, TextView.BufferType.Spannable); 
}else{ 
    tv_class_title.Visibility  =  Android.Views.ViewStates.Gone; 
} 
       //codex 
if (item.codex.Length>0){ 
    tv_codex.SetText(item.codex, TextView.BufferType.Spannable); 
}else{ 
    tv_codex.Visibility  =  Android.Views.ViewStates.Gone; 
}     

return view; 

이 문제의 해결 방법을 찾았습니다. 각 목록 길이에 대해 다른보기를 만들면 (즉, 4 개의 항목이있는 상자의보기, 3 개의 항목이있는 상자의 다른보기, 2 개의 항목이있는 상자의 다른보기 등) 및 목록 (콘텐츠 크기에 따라) 동적 목록에 & 스크롤이 완벽하게 표시됩니다. 이것은 단지 5 개의 다른 순열이 있기 때문에 이런 상황에서 저에게 효과적입니다. 그러나 더 많은 순열이있는 경우 문제가 무엇인지 파악하는 것이 좋습니다.

관련 문제