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

리스트뷰에서 getview가 자꾸 갱신되어서 수정하엿는데 소스좀 봐주세요ㅠㅠ

0 추천
애니메이션 부분이 자꾸 갱신이 되어서 애니메이션 처리하는 부분을 따로 만들었거든요

private void SetAnimation(int position) {
        // ArrayList<ShowitData> mShowitData = new ArrayList<ShowitData>();
        // holder = new ViewHolder();

        LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = inflater.inflate(R.layout.item_showit_adlist, null);
        android.widget.TextSwitcher mSwitcher, mSwitcher2, mSwitcher3, mSwitcher4, mSwitcher5, mSwitcher6;

        mSwitcher = (TextSwitcher) v.findViewById(R.id.textSwitcher1);
        mSwitcher2 = (TextSwitcher) v.findViewById(R.id.textSwitcher2);
        mSwitcher3 = (TextSwitcher) v.findViewById(R.id.textSwitcher3);
        mSwitcher4 = (TextSwitcher) v.findViewById(R.id.textSwitcher4);
        mSwitcher5 = (TextSwitcher) v.findViewById(R.id.textSwitcher5);
        mSwitcher6 = (TextSwitcher) v.findViewById(R.id.textSwitcher6);

        mSwitcher.setFactory(Frag_Showit.this);
        mSwitcher2.setFactory(Frag_Showit.this);
        mSwitcher3.setFactory(Frag_Showit.this);
        mSwitcher4.setFactory(Frag_Showit.this);
        mSwitcher5.setFactory(Frag_Showit.this);
        mSwitcher6.setFactory(Frag_Showit.this);

        final Animation in = AnimationUtils.loadAnimation(getActivity(), R.anim.in);
        final Animation out = AnimationUtils.loadAnimation(getActivity(), R.anim.out);

        mSwitcher.setInAnimation(in);
        mSwitcher.setOutAnimation(out);
        mSwitcher2.setInAnimation(in);
        mSwitcher2.setOutAnimation(out);
        mSwitcher3.setInAnimation(in);
        mSwitcher3.setOutAnimation(out);
        mSwitcher4.setInAnimation(in);
        mSwitcher4.setOutAnimation(out);
        mSwitcher5.setInAnimation(in);
        mSwitcher5.setOutAnimation(out);
        mSwitcher6.setInAnimation(in);
        mSwitcher6.setOutAnimation(out);

        ShowitData Showitdata = mShowitData.get(position);
    

        mSwitcher.setText(Showitdata.address.substring(0, 1));
        Log.i("TEST", "?? : " + mSwitcher.toString());
        mSwitcher2.setText(Showitdata.address.substring(1, 2));
        mSwitcher3.setText(Showitdata.address.substring(2, 3));
        mSwitcher4.setText(Showitdata.address.substring(3, 4));
        mSwitcher5.setText(Showitdata.address.substring(4, 5));
        mSwitcher6.setText(Showitdata.address.substring(5, 6));
    }

 

 

 

이렇게 만든다음에 리스트뷰의 getview에서 불러냈는데 왜 애니메이션 처리를 못하는거죠??

getview에서 SetAnimation(position);이렇게 해줬는데ㅠㅠㅠㅠ

애니메이션쪽에서 로그찍어봤을때 데이터랑은 다받아오는데 아무래도 못그려주는 것 같습니다

뭐가 잘못된걸까요??????????ㅠㅠㅠㅠㅠㅠㅠㅠㅠ
꿀떡 (2,700 포인트) 님이 2015년 12월 28일 질문

1개의 답변

0 추천
GetView는 리스트 포지션이 갱신될때마다 호출됩다. (때문에 애니메이션이 정상적으로 보이지않는 것이 당연합니다) 차라리 scrollview에 View를 리스트처럼 addView하여 view에 애니메이션을 한번만 호출하는것이 나을듯합니다

다만 뷰가 안보이는 시점에도 애니메이션이 작동하는지 여부 보시고 잘못하면 메모리이슈가 있을수도있겠네요
ShakeJ (6,320 포인트) 님이 2015년 12월 28일 답변
...