public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
String iconName = null;
ViewHolder viewHolder;
if(convertView == null) {
LayoutInflater inflater = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
viewHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.menu_item_layout, parent, false);
viewHolder.groupText = (TextView)convertView.findViewById(R.id.menuTitle);
viewHolder.parentLayout = (RelativeLayout)convertView;
viewHolder.parentLayout.setTag(R.string.menuId, getGroup(groupPosition).getMenuId());
viewHolder.indicator = (ImageView) convertView.findViewById(R.id.indicator);
viewHolder.menuIconImage = (ImageView) convertView.findViewById(R.id.menuIcon);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder)convertView.getTag();
}
iconName = getGroup(groupPosition).getMenuIcon();
if(getChildrenCount(groupPosition) == 0) {
viewHolder.indicator.setImageDrawable(null);
}
viewHolder.groupText.setText(getGroup(groupPosition).getMenuTitle() + getChildrenCount(groupPosition));
if(iconName != null)
viewHolder.menuIconImage.setImageResource(getResources().getIdentifier(iconName, "drawable", getActivity().getApplicationContext().getPackageName()));
if(viewHolder.indicator != null && isExpanded ) {
viewHolder.indicator.setSelected(true);
} else if(viewHolder.indicator != null && !isExpanded ) {
viewHolder.indicator.setSelected(false);
}
menuListView.invalidateViews();
Log.i("pos", " : " + groupPosition);
Log.i("pos size", " : " + getChildrenCount(groupPosition));
return convertView;
}
위와같이 코드를 짰는데, 실제로 로그캣에는
10-23 17:46:45.665 10328-10328/com.example.btc111110_07.court I/pos: : 0
10-23 17:46:45.665 10328-10328/com.example.btc111110_07.court I/pos size: : 2
10-23 17:46:45.670 10328-10328/com.example.btc111110_07.court I/pos: : 1
10-23 17:46:45.670 10328-10328/com.example.btc111110_07.court I/pos size: : 2
10-23 17:46:45.670 10328-10328/com.example.btc111110_07.court I/pos: : 2
10-23 17:46:45.670 10328-10328/com.example.btc111110_07.court I/pos size: : 0
10-23 17:46:45.675 10328-10328/com.example.btc111110_07.court I/pos: : 3
10-23 17:46:45.675 10328-10328/com.example.btc111110_07.court I/pos size: : 0
이렇게 잘 찍힙니다.
그런데 첫번째의 pos size는 분명 2인데 자꾸 아래부분이 실행되서그런지
if(getChildrenCount(groupPosition) == 0) {
viewHolder.indicator.setImageDrawable(null);
}
첫 줄의 이미지가 사라져 버리네요. 이뿐만 아니라
중간에 있는 이미지도 그룹을 열었다 닫으면 사라지고 그러네요..
getView를 잘못 이해하고있는것 같아서 질문드립니다.