diff --git a/android/src/screens/ChatScreen.tsx b/android/src/screens/ChatScreen.tsx index 1ad04e6..70d4ff1 100644 --- a/android/src/screens/ChatScreen.tsx +++ b/android/src/screens/ChatScreen.tsx @@ -373,13 +373,17 @@ const ChatScreen: React.FC = () => { const shouldAutoScroll = useRef(true); const lastMessageCount = useRef(0); - // Bei neuen Nachrichten: sofort nach unten + // Bei neuen Nachrichten oder App-Start: nach unten springen useEffect(() => { - if (messages.length > lastMessageCount.current && shouldAutoScroll.current) { - // Kurzer Delay damit FlatList rendern kann - setTimeout(() => { - flatListRef.current?.scrollToEnd({ animated: messages.length > lastMessageCount.current + 1 ? false : true }); - }, 150); + if (messages.length > 0 && shouldAutoScroll.current) { + const isInitial = lastMessageCount.current === 0; + // Mehrfach versuchen (FlatList braucht Zeit zum Rendern) + const delays = isInitial ? [100, 300, 600, 1000] : [100, 300]; + for (const delay of delays) { + setTimeout(() => { + flatListRef.current?.scrollToEnd({ animated: !isInitial }); + }, delay); + } } lastMessageCount.current = messages.length; }, [messages]);