인프런 커뮤니티 질문&답변

오카네님의 프로필 이미지
오카네

작성한 질문수

[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z

Wrap-up

뷰의 속성에 대한 질문이에요

작성

·

386

0

문득 궁금한건데 웹에서는 엘리먼트에 클래스를 지정해서 각 클래스가 갖는 css속성들을 재사용 하는 것이 가능했잖아요? 근데 스탑워치를 따라 만들면서 느낀게 두개 버튼은 같은 속성(예를 들면 마진)같은 게 있는데 복사 붙혀넣기를 통해서 속성을 지정하더라구요. 이게 버튼이 두개라서 그렇지만 버튼이 수십개일 수도 있잖아요? 예를 들면 계산기만 해도 버튼이 스무개는 되니까요. 이런 경우 같은 속성을 재사용 하는 것이 가능할까요??

답변 1

0

Code With Joyce님의 프로필 이미지
Code With Joyce
지식공유자

안녕하세요 오카네님!

맞습니다, 웹에서는 CSS 속성을 재사용하는 것이 가능했습니다.

당연히 안드로이드도 됩니다!

강의 속에서는 여러분들이 디자인 속성 값에 익숙해지고, 여러 값들을 바로 넣고 변경해보는 것을 실습하셨으면 좋겠어서 그렇게 구성을 했답니다.

 

안드로이드에서는 어떻게 속성값을 재활용할 수 있을까요?

첫 번째로는 <include> 태그를 사용하는 방법입니다.

위에 로고와 제목을 나타내는 'titlebar.xml'을 아래와 같이 작성합니다.

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/titlebar_bg"
    tools:showIn="@layout/activity_main" >

    <ImageView android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:src="@drawable/gafricalogo" />
</FrameLayout>

그리고 아래처럼 재 사용하고 싶은 레이아웃에서 <include> 태그를 사용하여 재사용할 수 있습니다.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/app_bg"
    android:gravity="center_horizontal">

    <include layout="@layout/titlebar"/> // 여기서 재사용합니다.

    <TextView android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:text="@string/hello"
              android:padding="10dp" />

    ...

</LinearLayout>

 

두 번째로는 커스텀 뷰도 생성할 수 있습니다.

버튼, 이미지뷰, 텍스트뷰 모두 강의에서 배웠다시피 "View" 클래스를 상속받은 클래스들입니다. 이런 뷰들을 우리도 직접 만들 수가 있습니다.

해당 내용은 여기서 설명하기는 약간 길어서요, 자세한 내용은 아래 안드로이드 공식 문서를 참고 바랍니다.

https://developer.android.com/develop/ui/views/layout/custom-views/create-view

 

질문에 답변이 되었기를 바랍니다! 감사합니다 :)

오카네님의 프로필 이미지
오카네

작성한 질문수

질문하기