android include layout 관련

Assist·2023년 5월 26일
0

Android

목록 보기
16/24

어제 글에서 보면 멘토님께 코드 리뷰를 받고 사수분께 2차로 혼났다고
했던 글이 있어요. 뭐 때문에 혼냈는지? 조언? 했는지 알려주려고 해요.

생각해보니 혼내는게 아니라 조언 말씀 해 준거 같에요 ㅎㅎ
자 그럼 제가 어떠한 것에 혼났냐

include layout을 사용해라!

제가 처음 실무를 들어갔을떄 처음으로 개발하기 싫을때가 xml 짤때 였던거 같에요.
똑같이 반복되는 디자인 패턴에 똑같은 배치의 xml을 여러게 만들고 힘들게 짜고 있으니까요
예를들어

저런식의 디자인된 화려한 check boxdl 반복되고 쓰는곳이 많다고 생각해봐요. 전 벌써 하기 싫네요. 그래서 나온게 include 이에요

include 사용법

아주 간단해요

  • include 할 layout을 만들어준다
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">
    <data>

        <variable
            name="argTextTitle"
            type="java.lang.String" />
    </data>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView

            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="24sp"
            android:gravity="center"
            android:text="@{argTextTitle}"
            tools:text = "title"/>

    </LinearLayout>
</layout>

변수는 data 을 선언하고 그안에 <variable 식으로 선언을 해야해요.
그후 변수(argTextTitle) 을 동적으로도 사용할수 있어 개발자 입 맛에 맞춰 여러 상황에 맞춰 만들고 xml 파일을 호출만 하면 끝나서 노가다를 안해서 정말 좋죠

include layout 호출하기

보통 저희가 xml 을쓸때

 <androidx.constraintlayout.widget.ConstraintLayout>
  //xml 코드 
 <androidx.constraintlayout.widget.ConstraintLayout>

이런식으로 쓸겁니다. 호출하는건

<layout>
 <androidx.constraintlayout.widget.ConstraintLayout>
 //xml 코드 
        <include
               android:id="@+id/layout_title_top"
               layout="@layout/include_title"
               app:argTextTitle ="@{@string/txt_search_book}"
               app:layout_constraintTop_toTopOf="parent"
               app:layout_constraintStart_toStartOf="parent"
               app:layout_constraintEnd_toEndOf="parent"/>
<androidx.constraintlayout.widget.ConstraintLayout>
</layout>

이런식으로 호출하면 됩니다 꼭 layout을 써줘야 해요
여기서 특이한 것은 app:argTextTitle 일꺼에요.
어디서 본것같은데요

        <variable
           name="argTextTitle"
           type="java.lang.String" />

바로 include layout에 들어간 변수에요
쉽게 생각해서 변수에 값 넣어줬다 생각하면 됩니다

그래서 혼난거랑 이거랑 무슨 상관?

이제까지 전 xml에 무조건 때려 박는 형식으로 view 코드를 짜왔습니다.
근데 include을 디자인팀이 연속적으로 사용하는 디자인을 미리 개발해 놓으면 다른 개발자들은 노가다를 안해도 괜찮아서 시간도 절약하고 확실의 xml 코드가 깔끔해지는거 같에요

근데 전 여기서 xml에 바로 <TextView 넣으면 글자가 바로바로 보여서 편했지만 사수가 그걸보고 자기시간 사용해서 알려준걸 안사용하고 view 코드가 난잡해져서 조언 해주시건 같에요

  • include을 쓰면 xml view 코드가 깔끔해집니다.

  • xml 파일을 공통적으로 사용해서 다시 개발할 필요가 없다

  • 노가다를 안할수 있다

    끝 오늘도 글 읽어 주셔서 감사합니다

profile
안드로이드만 좋아하는 특이한 개발자

0개의 댓글

관련 채용 정보