feat: 메인 라이브

- 새로운 UI의 기본 골격 적용
This commit is contained in:
2025-07-16 22:07:07 +09:00
parent 386f9aae32
commit 0c7c7946c6
11 changed files with 219 additions and 391 deletions

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#263238" />
<corners android:radius="16dp" />
</shape>

View File

@@ -4,86 +4,114 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/main_toolbar"
android:layout_width="0dp"
android:layout_height="?attr/actionBarSize"
android:paddingHorizontal="24dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:contentDescription="@null"
android:src="@drawable/img_text_logo" />
<LinearLayout
android:id="@+id/ll_short_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:orientation="horizontal"
android:visibility="gone">
<ImageView
android:id="@+id/iv_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
android:src="@drawable/ic_search_white" />
<ImageView
android:id="@+id/iv_charge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:contentDescription="@null"
android:src="@drawable/ic_can_circle" />
<ImageView
android:id="@+id/iv_message"
android:layout_width="25dp"
android:layout_height="25dp"
android:contentDescription="@null"
android:src="@drawable/ic_message" />
</LinearLayout>
</RelativeLayout>
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/main_toolbar">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include
android:id="@+id/layout_recommend_live"
layout="@layout/layout_recommend_live"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="13.3dp"
android:layout_marginTop="13.3dp"
android:layout_marginBottom="40dp" />
<LinearLayout
android:id="@+id/ll_review_live"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="13.3dp"
android:layout_marginBottom="40dp"
android:background="@drawable/img_bg_review_live"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="2.7dp"
android:fontFamily="@font/gmarket_sans_bold"
android:gravity="center"
android:text="라이브 다시듣기"
android:textColor="@color/color_672bff"
android:textSize="16.7sp"
app:drawableStartCompat="@drawable/ic_thumb_play_purple" />
</LinearLayout>
<include
android:id="@+id/layout_recommend_channel"
layout="@layout/layout_live_recommend_channel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="13.3dp" />
android:orientation="vertical"
android:paddingVertical="24dp">
<include
android:id="@+id/layout_live_now"
layout="@layout/layout_live_now"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp" />
android:layout_marginBottom="48dp" />
<com.zhpan.bannerview.BannerViewPager
android:id="@+id/event_banner_slider"
<TextView
android:id="@+id/tv_community_post"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp" />
<com.zhpan.indicator.IndicatorView
android:id="@+id/indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="6.7dp" />
android:layout_marginHorizontal="24dp"
android:layout_marginBottom="14dp"
android:fontFamily="@font/pretendard_bold"
android:text="커뮤니티"
android:textColor="@color/color_3bb9f1"
android:textSize="26sp" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_community_post"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:layout_marginBottom="48dp"
android:visibility="gone" />
<include
android:id="@+id/layout_recommend_live"
layout="@layout/layout_recommend_live"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="48dp" />
<include
android:id="@+id/layout_recommend_channel"
layout="@layout/layout_live_recommend_channel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="48dp" />
<include
android:id="@+id/layout_live_reservation"
layout="@layout/layout_live_reservation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp" />
android:layout_height="wrap_content" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>

View File

@@ -29,7 +29,7 @@
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:background="@drawable/bg_round_corner_6_7_3bb9f1"
android:fontFamily="@font/gmarket_sans_bold"
android:fontFamily="@font/pretendard_bold"
android:paddingHorizontal="5.7dp"
android:paddingVertical="2.7dp"
android:text="LIVE"
@@ -42,12 +42,12 @@
android:id="@+id/tv_recommend_channel_nickname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="11.3dp"
android:layout_marginTop="12dp"
android:ellipsize="end"
android:fontFamily="@font/gmarket_sans_medium"
android:fontFamily="@font/pretendard_regular"
android:lines="1"
android:textColor="@color/color_bbbbbb"
android:textSize="11.3sp"
android:textColor="@color/white"
android:textSize="14sp"
tools:text="검은사신" />
</LinearLayout>

View File

@@ -8,7 +8,7 @@
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="13.3dp">
android:paddingHorizontal="24dp">
<LinearLayout
android:layout_width="match_parent"
@@ -18,18 +18,18 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold"
android:fontFamily="@font/pretendard_bold"
android:text="지금 "
android:textColor="@color/color_eeeeee"
android:textSize="18.3sp" />
android:textColor="@color/color_3bb9f1"
android:textSize="26sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold"
android:fontFamily="@font/pretendard_bold"
android:text="라이브중"
android:textColor="@color/color_ff5c49"
android:textSize="18.3sp" />
android:textColor="@color/white"
android:textSize="26sp" />
</LinearLayout>
<TextView
@@ -38,29 +38,29 @@
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:fontFamily="@font/gmarket_sans_light"
android:fontFamily="@font/pretendard_regular"
android:text="전체보기"
android:textColor="@color/color_bbbbbb"
android:textSize="11.3sp" />
android:textColor="#78909C"
android:textSize="14sp" />
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_suda_now"
android:id="@+id/rv_live_now"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="28.3dp"
android:layout_marginTop="14dp"
android:visibility="gone" />
<LinearLayout
android:id="@+id/ll_no_items"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="13.3dp"
android:layout_marginTop="28.3dp"
android:background="@drawable/bg_round_corner_4_7_13181b"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="28dp"
android:background="@drawable/bg_round_corner_16_263238"
android:gravity="center"
android:orientation="vertical"
android:paddingVertical="16.7dp"
android:paddingVertical="16dp"
android:visibility="gone">
<ImageView
@@ -73,12 +73,12 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="10dp"
android:fontFamily="@font/gmarket_sans_medium"
android:fontFamily="@font/pretendard_regular"
android:gravity="center"
android:text="마이페이지에서 본인인증을 하거나\n라이브를 예약하고 참여해보세요."
android:textColor="@color/color_bbbbbb"
android:textSize="13sp"
android:lineSpacingExtra="8dp"
android:text="마이페이지에서 본인인증을 하거나\n라이브를 예약하고 참여해보세요."
android:textColor="@color/white"
android:textSize="13sp"
tools:ignore="SmallSp" />
</LinearLayout>
@@ -86,8 +86,8 @@
android:id="@+id/ll_refresh"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="13.3dp"
android:layout_marginHorizontal="13.3dp"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="16dp"
android:background="@drawable/bg_round_corner_26_7_transparent_909090"
android:gravity="center"
android:paddingVertical="11dp">
@@ -102,7 +102,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:fontFamily="@font/gmarket_sans_medium"
android:fontFamily="@font/pretendard_regular"
android:text="새로고침"
android:textSize="14.7sp" />
</LinearLayout>

View File

@@ -6,84 +6,38 @@
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:paddingHorizontal="24dp">
<LinearLayout
android:id="@+id/ll_title_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="visible"
android:layout_centerVertical="true"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_title1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold"
android:text="추천 "
android:textColor="@color/color_eeeeee"
android:textSize="18.3sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold"
android:text="채널"
android:textColor="@color/color_3bb9f1"
android:textSize="18.3sp" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_title_2"
android:layout_width="match_parent"
android:visibility="gone"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold"
android:fontFamily="@font/pretendard_bold"
android:text="팔로잉 "
android:textColor="@color/color_eeeeee"
android:textSize="18.3sp" />
android:textColor="@color/color_3bb9f1"
android:textSize="26sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold"
android:fontFamily="@font/pretendard_bold"
android:text="채널"
android:textColor="@color/color_3bb9f1"
android:textSize="18.3sp" />
android:textColor="@color/white"
android:textSize="26sp" />
</LinearLayout>
<TextView
android:id="@+id/tv_following_channel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginEnd="6.7dp"
android:layout_toStartOf="@+id/iv_switch"
android:fontFamily="@font/gmarket_sans_medium"
android:text="팔로잉 채널"
android:textColor="@color/color_777777"
android:textSize="13.3sp" />
<ImageView
android:id="@+id/iv_switch"
android:layout_width="33.3dp"
android:layout_height="20dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:contentDescription="@null"
android:src="@drawable/btn_toggle_off_big" />
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_recommend_channel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="21.3dp" />
android:layout_marginTop="16dp"
android:clipToPadding="false"
android:paddingHorizontal="24dp" />
</LinearLayout>

View File

@@ -8,7 +8,7 @@
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingHorizontal="13.3dp">
android:layout_marginHorizontal="24dp">
<LinearLayout
android:layout_width="match_parent"
@@ -18,18 +18,18 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold"
android:text="지금 "
android:textColor="@color/color_eeeeee"
android:textSize="18.3sp" />
android:fontFamily="@font/pretendard_bold"
android:text="라이브 "
android:textColor="@color/color_3bb9f1"
android:textSize="26sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold"
android:fontFamily="@font/pretendard_bold"
android:text="예약중"
android:textColor="@color/color_3bb9f1"
android:textSize="18.3sp" />
android:textColor="@color/white"
android:textSize="26sp" />
</LinearLayout>
<TextView
@@ -38,27 +38,29 @@
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:fontFamily="@font/gmarket_sans_light"
android:fontFamily="@font/pretendard_regular"
android:text="전체보기"
android:textColor="@color/color_bbbbbb"
android:textSize="11.3sp" />
android:textColor="#78909C"
android:textSize="14sp" />
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_suda_reservation"
android:id="@+id/rv_live_reservation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="28.3dp"
android:layout_marginTop="14dp"
android:clipToPadding="false"
android:nestedScrollingEnabled="false"
android:paddingHorizontal="24dp"
android:visibility="gone" />
<LinearLayout
android:id="@+id/ll_no_items"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="13.3dp"
android:layout_marginVertical="28.3dp"
android:background="@drawable/bg_round_corner_4_7_13181b"
android:layout_marginHorizontal="24dp"
android:layout_marginVertical="28dp"
android:background="@drawable/bg_round_corner_16_263238"
android:gravity="center"
android:orientation="vertical"
android:paddingVertical="16.7dp"
@@ -74,12 +76,12 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="10dp"
android:fontFamily="@font/gmarket_sans_medium"
android:fontFamily="@font/pretendard_regular"
android:gravity="center"
android:text="지금 예약중인 라이브가 없습니다.\n채널을 팔로잉 하고 라이브 알림을 받아 보세요."
android:textColor="@color/color_bbbbbb"
android:textSize="13sp"
android:lineSpacingExtra="8dp"
android:text="지금 예약중인 라이브가 없습니다.\n채널을 팔로잉 하고 라이브 알림을 받아 보세요."
android:textColor="@color/white"
android:textSize="13sp"
tools:ignore="SmallSp" />
</LinearLayout>
</LinearLayout>

View File

@@ -4,53 +4,15 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold"
android:text="추천 "
android:textColor="@color/color_ff5c49"
android:textSize="18.3sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="@font/gmarket_sans_bold"
android:text="라이브"
android:textColor="@color/color_eeeeee"
android:textSize="18.3sp" />
</LinearLayout>
<ImageView
android:id="@+id/iv_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:contentDescription="@null"
android:src="@drawable/ic_message" />
</RelativeLayout>
<com.zhpan.bannerview.BannerViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="26.7dp" />
android:layout_height="wrap_content" />
<com.zhpan.indicator.IndicatorView
android:id="@+id/indicator2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="6.7dp" />
android:layout_marginTop="28dp" />
</LinearLayout>