마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

ExpandableListView에 inflater를 사용해서 여러 형식의 childview를 넣고 싶을 때

0 추천

ExpandableListView를 활용해서 데이터를 보여주려고 하는데요.

groupView는 같은 형식이나, childView는 group마다 다른 형식으로 보여주려고 합니다.

 

private LayoutInflater inflater = null;
private ViewHolder viewHolder = null;

...

@Override
    public View getChildView(int groupPosition, int childPosition,
                             boolean isLastChild, View convertView, ViewGroup parent) {

        View v = convertView;

        if(v == null){
            viewHolder = new ViewHolder();
            v = inflater.inflate(레이아웃1, null);
            v.setTag(viewHolder);
        }else{
            viewHolder = (ViewHolder)v.getTag();
        }

        return v;
    }

 

이게 기존 방식(childview가 한 가지 형식인 경우)이라고 한다면..

 

private LayoutInflater inflater = null;
private ViewHolder viewHolder = null;

...

@Override
    public View getChildView(int groupPosition, int childPosition,
                             boolean isLastChild, View convertView, ViewGroup parent) {

        View v = convertView;

     if(groupPosition == 0) {
        if(v == null){
            viewHolder = new ViewHolder();
            v = inflater.inflate(레이아웃1, null);
            v.setTag(viewHolder);
        }else{
            viewHolder = (ViewHolder)v.getTag();
        }
     } else if(groupPosition == 1) {
        if(v == null){
            viewHolder = new ViewHolder();
            v = inflater.inflate(레이아웃2, null);
            v.setTag(viewHolder);
        }else{
            viewHolder = (ViewHolder)v.getTag();
        }
     } else if(groupPosition == 2) {
        if(v == null){
            viewHolder = new ViewHolder();
            v = inflater.inflate(레이아웃3, null);
            v.setTag(viewHolder);
        }else{
            viewHolder = (ViewHolder)v.getTag();
        }
     }
        return v;
    }

 

물론 이건 그냥 예시라.. 저렇게 돌리면 처음 연 형식대로 다 통일이 됩니다.

좋은 방법이 있을까요..? 

조언 부탁 드려요.. 감사합니다!

hellAQA (120 포인트) 님이 2021년 8월 5일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...