POST

[안드로이드] 코틀린 커스텀위젯 만들기

위젯의 커스터마이징은 세 단계로 나눌 수 있다.

 

1. attrs.xml 파일 생성

새로운 위젯을 생성하고 사용할 때 위젯 이름뿐만 아니라 속성의 이름과 입력되는 값의 타입을 정의하고 사용할 수 있도록 한다.

<declare-styleable name="CustomWidget">

   <attr name="새로운 속성" format="string"/>

</declare-styleable>

 

레이아웃 파일에는 태그 속성의 prefix가 android가 아닌 custom을 사용해서 attrs.xml에 정의된 새로운 속성값을 사용할 수 있습니다.

 

<CustomWidget

   android:id="@+id/buttom"

   custom:새로운 속성="값"

   android:text="새로 만든 위젯"/>

 

2. 커스텀 위젯 클래스 생성

커스터마이징을 하기 위한 위젯클래스를 상속받아 클래스를 생성하고 위에서 새롭게 정의한 속성을 처리하는 코드를 작성한다.

class CustomWidget: TextView {

   constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {

   }

}

 

3. 레이아웃에 태그 적용

생성된 커스텀 클래스를 레이아웃 파일에 태그로 적용한다. 커스텀 위젯은 컨스트레인트 레이아웃처럼 위젯 클래스의 패키지 경로명도 함께 입력해서 사용한다

<패키지명.CustomWidget

   android:id="@+id/buttom"

   custom:새로운 속성="값"

   android:text="새로 만든 위젯"/>