본문 바로가기
IT/안드로이드

(Android) RecycleView에 Item 추가 하기(3/5)

by 불멸남생 2023. 2. 24.

1. 개요

    RecycleView에 아이템을 추가하고,  최근 추가한 아이템으로 스크롤되게 만들어 보겠습니다.

 

2. 작업 순서

    2.1. RecycleView와 하단에 버튼 붙이기.

    2.2. 추가할 아이템 데이터 구조 만들기. 

    2.3. 추가할 아이템  UI 만들기. 여기부터 작업 시작합니다. 

    2.4. RecycleView에 아이템을 추가하는 Adapter 만들기

    2.5. 추가한 Item으로 이동하기

 

3. 작업시작

    3.1. "2.3"를 진행하도록 하겠습니다.

          UI를 만들기위해  리소스 파일(XML 파일)을 생성해 보겠습니다.

          res -->  layout -> 오른쪽 마우스 -> new ->  Layout Resource File을 클릭합니다.

 

    3.2 새로 생성할 XML 파일이름 및 정보를 입력하고 'OK'를 클릭합니다. 저는 'rvitem'을 입력하였습니다.

           Root element  : 최상위 레이아웃이 무엇인지 결정하는 것이지만 나중에 교체합니다.(기본 ConstraintLayout 으로 설정됩니다.)

           Source set : 파일 경로입니다.

           Directory name : 폴터 이름입니다.

    3.3 "OK"를 클릭하면 아래와 같은 초기화면이 표시됩니다. 그러면 layout 을  "(Android) 버튼 아래 고정하고 RecyclerView 화면 채우기"에서 해본 것 같은 변경 하면 됩니다.

         요약하자면 ConstraintLayout 우클릭 -> "Convert view..."클릭 -> LinerLayout 선택 -> orientation" 값을 "vertical" 로변경하면 됩니다.

 

    3.4 상위  Layout 을 LinerLayout 로 변경 후 아래에 LinerLayout 레이 아웃을 하나 더 추가합니다. 그리고 orientation" 값을 "vertical"로

    3.4 여기서 중요한 점이 있습니다. 제일 위에 있는 LinerLayout 에 "layout_height"를 "wrap_content"로 설정을 해야 합니다. (안 그럼 TextView 외의 나머지 영역까지  표시가 됩니다.)  아래 LinerLayout "wrap_content" 하던가 길이를 따로 정해주어야 합니다.

 

4. 소스

//rvitem.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="104dp"
        android:orientation="vertical">

        <TextView
            android:id="@+id/lblinput1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="input1" />

        <TextView
            android:id="@+id/lblinput2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="input2" />

        <TextView
            android:id="@+id/lblinput3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="input3" />

    </LinearLayout>
</LinearLayout>

2.3. 끝..

 

반응형