feat(main): 메인 탭 당겨서 새로고침을 추가한다

This commit is contained in:
2026-07-22 17:48:33 +09:00
parent b17e250665
commit 6755c8ae99
27 changed files with 1830 additions and 239 deletions
@@ -24,30 +24,38 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_chat_title_bar" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_chat_rooms"
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipe_chat_rooms"
android:layout_width="0dp"
android:layout_height="0dp"
android:clipToPadding="false"
android:paddingBottom="@dimen/spacing_48"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_chat_filter_tabs"
tools:listitem="@layout/item_v2_chat_room" />
app:layout_constraintTop_toBottomOf="@id/view_chat_filter_tabs">
<TextView
android:id="@+id/tv_chat_empty_message"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="@color/color_777777"
android:textSize="14sp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_chat_filter_tabs"
tools:text="아직 나눈 대화가 없어요.\n크리에이터와 이야기를 시작해 보세요." />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_chat_rooms"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingBottom="@dimen/spacing_48"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/item_v2_chat_room" />
<TextView
android:id="@+id/tv_chat_empty_message"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:textColor="@color/color_777777"
android:textSize="14sp"
android:visibility="gone"
tools:text="아직 나눈 대화가 없어요.\n크리에이터와 이야기를 시작해 보세요." />
</FrameLayout>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -99,41 +99,48 @@
</LinearLayout>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_content_all_items"
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipe_content_all"
android:layout_width="0dp"
android:layout_height="0dp"
android:clipToPadding="false"
android:paddingHorizontal="@dimen/spacing_14"
android:paddingTop="@dimen/spacing_14"
android:paddingBottom="@dimen/spacing_28"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/layout_content_all_sort_bar" />
<FrameLayout
android:id="@+id/layout_content_all_empty_error"
android:layout_width="0dp"
android:layout_height="0dp"
android:paddingHorizontal="@dimen/spacing_28"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/layout_content_all_sort_bar">
<TextView
android:id="@+id/tv_content_all_empty_error"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/medium"
android:gravity="center"
android:includeFontPadding="false"
android:textColor="@color/color_777777"
android:textSize="14sp" />
</FrameLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_content_all_items"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingHorizontal="@dimen/spacing_14"
android:paddingTop="@dimen/spacing_14"
android:paddingBottom="@dimen/spacing_28" />
<FrameLayout
android:id="@+id/layout_content_all_empty_error"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingHorizontal="@dimen/spacing_28"
android:visibility="gone">
<TextView
android:id="@+id/tv_content_all_empty_error"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:fontFamily="@font/medium"
android:gravity="center"
android:includeFontPadding="false"
android:textColor="@color/color_777777"
android:textSize="14sp" />
</FrameLayout>
</FrameLayout>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<include
@@ -146,30 +153,41 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/text_tab_bar_content" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_content_rankings"
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipe_content_ranking"
android:layout_width="0dp"
android:layout_height="0dp"
android:clipToPadding="false"
android:paddingHorizontal="@dimen/spacing_14"
android:paddingTop="@dimen/spacing_14"
android:paddingBottom="@dimen/spacing_28"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_content_ranking_type_tabs" />
app:layout_constraintTop_toBottomOf="@id/view_content_ranking_type_tabs">
<androidx.core.widget.NestedScrollView
android:id="@+id/nsv_content_recommendation_content"
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_content_rankings"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingHorizontal="@dimen/spacing_14"
android:paddingTop="@dimen/spacing_14"
android:paddingBottom="@dimen/spacing_28" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipe_content_recommendation"
android:layout_width="0dp"
android:layout_height="0dp"
android:fillViewport="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/text_tab_bar_content">
<androidx.core.widget.NestedScrollView
android:id="@+id/nsv_content_recommendation_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:id="@+id/ll_content_recommendation_content"
android:layout_width="match_parent"
@@ -342,5 +360,6 @@
android:paddingHorizontal="@dimen/spacing_14" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.core.widget.NestedScrollView>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -24,16 +24,21 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_home_title_bar" />
<androidx.core.widget.NestedScrollView
android:id="@+id/nsv_home_recommendation_content"
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipe_home_recommendation"
android:layout_width="0dp"
android:layout_height="0dp"
android:fillViewport="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/text_tab_bar_home">
<androidx.core.widget.NestedScrollView
android:id="@+id/nsv_home_recommendation_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:id="@+id/ll_home_recommendation_content"
android:layout_width="match_parent"
@@ -216,19 +221,25 @@
android:textColor="@color/gray_500" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.core.widget.NestedScrollView>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<androidx.core.widget.NestedScrollView
android:id="@+id/nsv_home_following_content"
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipe_home_following"
android:layout_width="0dp"
android:layout_height="0dp"
android:fillViewport="true"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/text_tab_bar_home">
<androidx.core.widget.NestedScrollView
android:id="@+id/nsv_home_following_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:id="@+id/ll_home_following_content"
android:layout_width="match_parent"
@@ -357,20 +368,27 @@
tools:listitem="@layout/item_home_following_news_content" />
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.core.widget.NestedScrollView>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_home_creator_rankings"
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/swipe_home_ranking"
android:layout_width="0dp"
android:layout_height="0dp"
android:clipToPadding="false"
android:paddingHorizontal="@dimen/spacing_14"
android:paddingTop="@dimen/spacing_14"
android:paddingBottom="@dimen/spacing_28"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/text_tab_bar_home"
tools:listitem="@layout/view_creator_ranking_lower_row" />
app:layout_constraintTop_toBottomOf="@id/text_tab_bar_home">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_home_creator_rankings"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:paddingHorizontal="@dimen/spacing_14"
android:paddingTop="@dimen/spacing_14"
android:paddingBottom="@dimen/spacing_28"
tools:listitem="@layout/view_creator_ranking_lower_row" />
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</androidx.constraintlayout.widget.ConstraintLayout>