본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] Custom view state 관리에 대한 내용.

by 돼지왕 왕돼지 2017. 5. 23.
반응형

 [android] Custom view state 관리에 대한 내용.


Android, checkable, checked state, custom state, custom view state, drawable, implement, Interface, mergedrawablestates, oncreatedrawablestate, refreshdrawablestate, selector, View, [android] Custom view state 관리에 대한 내용.


-

예를 들어 checked state 가 없는 view 에 checked state 를 추가하려면 다음과 같이 할 수 있다.


-
우선 어떤 view 에 Checkable 이라는 interface 를 implement 시키고.. ( android 에 있는 interface )

public interface Checkable{
     void setChecked(boolean checked);
     boolean isChecked();
     void toggle();
}


-
setChecked 함수에서 refreshDrawableState() 를 호출하면, int[] onCreateDrawableState(int extraSpace) 가 불린다.

private static final int[] CHECKED_STATE_SET = {
     android.R.attr.state_checked // custom state 의 경우 custom attribute 를 추가하면 된다.
};

@Override
protected int[] onCreateDrawableState(int extraSpace){
     final int[] drawableState = super.onCreateDrawableState(extraSpace +CHECKED_STATE_SET.size());
     if ( isChecked() ){
          mergeDrawableStates(drawableState, CHECKED_STATE_SET);
     }
     return drawableState;
}


-
Custom state 에 대한 자세한 내용은 아래 링크를 확인하자.

http://stackoverflow.com/questions/4336060/how-to-add-a-custom-button-state




반응형

댓글