[2023. 12. 28] 팀 프로젝트(진행)

Gahyeon Lee·2023년 12월 28일
0

TIL

목록 보기
35/47
post-thumbnail

스크롤 뷰 구현하다가 하루가 다 가버렸다..

😵 ScrollView

constraint layout으로 했다가 스크롤뷰를 전체 감싸려니 자꾸 흩어지고 에러가 떴다. 안에 Horizontal ScrollView가 중첩되어 있기도 해서 더 복잡하게 느껴졌다. 튜터님께 질문도 해보고 알아보면서 영역을 따로따로 constraint layout으로 감싸주고 그 위를 linearlayout으로, 또 그 위를 scrollview로 했더니 성공!

코드가 너무 길어서 include로 재사용 가능하게 만들어야겠다.

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".FeedActivity">

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/iv_logo"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_marginStart="24dp"
            android:layout_marginTop="32dp"
            android:scaleType="fitXY"
            android:src="@drawable/tastory_logo_simple"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <ImageButton
            android:id="@+id/iv_btn_mypage"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_marginStart="16dp"
            android:layout_marginEnd="24dp"
            android:background="@android:color/white"
            android:scaleType="fitXY"
            android:src="@drawable/btn_mypage"
            app:layout_constraintBottom_toBottomOf="@+id/tv_welcome"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@+id/tv_welcome"
            app:layout_constraintTop_toTopOf="@+id/tv_welcome" />

        <TextView
            android:id="@+id/tv_welcome"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="24dp"
            android:gravity="right"
            android:text=""
            android:textSize="18dp"
            android:textStyle="bold"
            app:layout_constraintBottom_toBottomOf="@+id/iv_logo"
            app:layout_constraintEnd_toStartOf="@+id/iv_btn_mypage"
            app:layout_constraintStart_toEndOf="@+id/iv_logo"
            app:layout_constraintTop_toTopOf="@+id/iv_logo" />

    </androidx.constraintlayout.widget.ConstraintLayout>

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="32dp">

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

            <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <TextView
                    android:id="@+id/tv_history"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="16dp"
                    android:layout_marginEnd="16dp"
                    android:text="히스토리"
                    android:textColor="@color/brown"
                    android:textSize="18sp"
                    android:textStyle="bold"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />

                <HorizontalScrollView
                    android:id="@+id/sv_horizontal"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/tv_history"
                    android:layout_marginTop="10dp">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="horizontal">

                        <ImageView
                            android:id="@+id/iv_pizza"
                            android:layout_width="110dp"
                            android:layout_height="130dp"
                            android:layout_marginStart="16dp"
                            android:scaleType="centerCrop"
                            android:src="@drawable/pizza" />

                        <ImageView
                            android:id="@+id/iv_cake"
                            android:layout_width="110dp"
                            android:layout_height="130dp"
                            android:layout_marginStart="8dp"
                            android:scaleType="centerCrop"
                            android:src="@drawable/cake" />

                        <ImageView
                            android:id="@+id/iv_chicken"
                            android:layout_width="110dp"
                            android:layout_height="130dp"
                            android:layout_marginStart="8dp"
                            android:scaleType="centerCrop"
                            android:src="@drawable/chicken" />

                        <ImageView
                            android:id="@+id/iv_ramen"
                            android:layout_width="110dp"
                            android:layout_height="130dp"
                            android:layout_marginStart="8dp"
                            android:scaleType="centerCrop"
                            android:src="@drawable/ramen" />

                        <ImageView
                            android:id="@+id/iv_noodle"
                            android:layout_width="110dp"
                            android:layout_height="130dp"
                            android:layout_marginStart="8dp"
                            android:scaleType="centerCrop"
                            android:src="@drawable/noodle" />

                        <ImageView
                            android:id="@+id/iv_pork"
                            android:layout_width="110dp"
                            android:layout_height="130dp"
                            android:layout_marginStart="8dp"
                            android:scaleType="centerCrop"
                            android:src="@drawable/pork" />
                    </LinearLayout>

                </HorizontalScrollView>

            </androidx.constraintlayout.widget.ConstraintLayout>

            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/cl_feed"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <ImageView
                    android:id="@+id/iv_account"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:layout_marginStart="16dp"
                    android:layout_marginTop="32dp"
                    android:src="@drawable/account"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />

                <TextView
                    android:id="@+id/tv_chopa"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="8dp"
                    android:text="쵸파"
                    android:textColor="@color/brown"
                    android:textSize="18dp"
                    android:textStyle="bold"
                    app:layout_constraintStart_toEndOf="@+id/iv_account"
                    app:layout_constraintTop_toTopOf="@+id/iv_account" />

                <TextView
                    android:id="@+id/tv_time1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="8dp"
                    android:text="3시간 전"
                    app:layout_constraintBottom_toBottomOf="@+id/iv_account"
                    app:layout_constraintStart_toEndOf="@+id/iv_account"
                    app:layout_constraintTop_toBottomOf="@+id/tv_chopa" />

                <ImageView
                    android:id="@+id/iv_steak2"
                    android:layout_width="0dp"
                    android:layout_height="220dp"
                    android:layout_marginStart="16dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="16dp"
                    android:scaleType="centerCrop"
                    android:src="@drawable/steak"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/iv_account" />

                <TextView
                    android:id="@+id/textView"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="16dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="16dp"
                    android:text="크리스마스 추천 맛집!"
                    android:textStyle="bold"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/iv_steak2" />

                <TextView
                    android:id="@+id/textView2"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="16dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="16dp"
                    android:text="벌써 2023년 연말이 다가왔습니다~! \n크리스마스와 연말을 맞아 가족 혹은 연인과 함께 방문하기 좋은 맛집을 소개해 드릴게요."
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/textView" />

            </androidx.constraintlayout.widget.ConstraintLayout>

            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/cl_feed2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <ImageView
                    android:id="@+id/iv_account2"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:layout_marginStart="16dp"
                    android:layout_marginTop="16dp"
                    android:src="@drawable/account"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />

                <TextView
                    android:id="@+id/tv_duckman"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="8dp"
                    android:text="덕만"
                    android:textSize="18dp"
                    android:textStyle="bold"
                    android:textColor="@color/brown"
                    app:layout_constraintStart_toEndOf="@+id/iv_account2"
                    app:layout_constraintTop_toTopOf="@+id/iv_account2" />

                <TextView
                    android:id="@+id/tv_time2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="8dp"
                    android:text="5시간 전"
                    app:layout_constraintBottom_toBottomOf="@+id/iv_account2"
                    app:layout_constraintStart_toEndOf="@+id/iv_account2"
                    app:layout_constraintTop_toBottomOf="@+id/tv_duckman" />

                <ImageView
                    android:id="@+id/iv_makchang2"
                    android:layout_width="0dp"
                    android:layout_height="220dp"
                    android:layout_marginStart="16dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="16dp"
                    android:scaleType="centerCrop"
                    android:src="@drawable/makchang"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/iv_account2" />

                <TextView
                    android:id="@+id/textView3"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="16dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="16dp"
                    android:text="서울 막창 맛집을 소개합니다~"
                    android:textStyle="bold"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@id/iv_makchang2" />

                <TextView
                    android:id="@+id/textView4"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="16dp"
                    android:layout_marginTop="8dp"
                    android:layout_marginEnd="16dp"
                    android:text="을지로 주변에 가신다면 꼭 한 번 가봐야하는 막창 맛집!\n언제든 부담없이 가기 좋은 "
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toBottomOf="@+id/textView3" />

            </androidx.constraintlayout.widget.ConstraintLayout>

        </LinearLayout>

    </ScrollView>

</LinearLayout>
profile
코린이 강아지 집사🐶

0개의 댓글