From 0a476da49698949ce09770e8d7c930c35bc62ed8 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 3 Mar 2026 02:32:49 +0000 Subject: [PATCH] =?UTF-8?q?fix(logs):=20=E3=83=95=E3=82=A3=E3=83=AB?= =?UTF-8?q?=E3=82=BF=E3=83=BC=E3=81=A8=E4=BB=B6=E6=95=B0=E3=82=92=E3=82=B9?= =?UTF-8?q?=E3=82=AF=E3=83=AD=E3=83=BC=E3=83=AB=E8=BF=BD=E5=BE=93=E3=81=8B?= =?UTF-8?q?=E3=82=89=E9=99=A4=E5=A4=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit フィルターアコーディオンと件数表示をstickyHeaderからFlatListの ListHeaderComponentに移動。タイトルと検索ボックスのみがスクロール 追従で固定表示され、フィルターと件数はリストと一緒にスクロールする。 https://claude.ai/code/session_01MPkqpw4PNwHcRH6Gb74HD9 --- app/(tabs)/logs.tsx | 151 +++++++++++++++++++++++--------------------- 1 file changed, 79 insertions(+), 72 deletions(-) diff --git a/app/(tabs)/logs.tsx b/app/(tabs)/logs.tsx index 992d5eb..0f04de8 100644 --- a/app/(tabs)/logs.tsx +++ b/app/(tabs)/logs.tsx @@ -315,7 +315,7 @@ export default function LogsScreen() { return ( - {/* ヘッダー部分(スクロールに追従して固定表示) */} + {/* ヘッダー部分(タイトル・検索のみ固定表示) */} {/* Header with status */} @@ -344,55 +344,64 @@ export default function LogsScreen() { )} - {/* Filter Accordion */} - - {/* Accordion Header */} - - - - - フィルター - - {(selectedTypes.size > 0 || selectedLevels.size > 0 || selectedDevices.size > 0) && ( - - 適用中 - - )} - - - ▼ - - - + - {/* Accordion Content with Animation */} - - - {/* Type Filter */} - - タイプ - - {/* すべてボタン */} - handleTypeSelect(null)} - activeOpacity={0.7} - style={styles.filterButton} - > - + {/* Filter Accordion */} + + {/* Accordion Header */} + + + + + フィルター + + {(selectedTypes.size > 0 || selectedLevels.size > 0 || selectedDevices.size > 0) && ( + + 適用中 + + )} + + + ▼ + + + + + {/* Accordion Content with Animation */} + + + {/* Type Filter */} + + タイプ + + {/* すべてボタン */} + handleTypeSelect(null)} + activeOpacity={0.7} + style={styles.filterButton} + > + )} + + - - - {/* Count info */} - - - {filteredLogs.length} 件のログ - {hasActiveFilter && ( - (全{state.logs.length}件) - )} - - {state.logs.length > 0 && ( - - クリア - - )} - - - - + + {filteredLogs.length} 件のログ + {hasActiveFilter && ( + (全{state.logs.length}件) + )} + + {state.logs.length > 0 && ( + + クリア + + )} + + + } ListEmptyComponent={ListEmpty} contentContainerStyle={styles.listContent} showsVerticalScrollIndicator={false} @@ -617,6 +621,9 @@ const styles = StyleSheet.create({ paddingTop: 8, paddingBottom: 100, }, + listHeaderContent: { + paddingBottom: 8, + }, filterScrollContent: { gap: 8, },