[안드로이드 공부]/UI

[안드로이드] layoutInflater 성능 올리기

코코모아 2016. 4. 26. 10:33

XML을 코드에서 가져와서 사용 할 경우, layoutInflater.inflate 방법을 사용한다.

하지만, 이 놈을 사용 하는 만큼 뷰를 계속 불러 온다.


10개의 뷰가 있는데 layoutInflater.inflate 코드가 실행 되면 getView를 통해 뷰를 하나씩 10번 불러 온다. 얼마나 낭비인가?

그럼 어떻게? 간단하다. 이 놈을 사용 하게  될 경우 view가 null인지를 체크 한 뒤 사용 하면 된다.


원래 getView에 convertView가 있는데 


    public View getView(View convertView, ViewGroup parent) {

        if (convertView == null) {

            convertView = onCreateView(parent);

        }

        onBindView(convertView);

        return convertView;

    }

    

같은 원리다. 

if(mView == null)

layoutInflater.inflate(....)


요렇게 하면 성능이 엄청 좋아 질 것이다.