From 5ef720f4753278d62c46722f3609b042e2bd1a46 Mon Sep 17 00:00:00 2001 From: harukin-expo-dev-env Date: Fri, 11 Apr 2025 13:52:48 +0000 Subject: [PATCH] =?UTF-8?q?=E5=9C=B0=E5=9B=B3=E3=81=AE=E6=A9=9F=E8=83=BD?= =?UTF-8?q?=E3=81=8C=E4=B8=80=E9=80=9A=E3=82=8A=E5=8B=95=E3=81=8F=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E3=81=AA=E3=81=A3=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- menu.js | 74 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 59 insertions(+), 15 deletions(-) diff --git a/menu.js b/menu.js index 644953e..6f712b2 100644 --- a/menu.js +++ b/menu.js @@ -37,6 +37,7 @@ import lineColorList from "./assets/originData/lineColorList"; import { AS } from "./storageControl"; import { SimpleDot } from "./components/Menu/SimpleDot"; import { useAllTrainDiagram } from "./stateBox/useAllTrainDiagram"; +import MapView from "react-native-maps"; export default function Menu({ getCurrentTrain }) { const { navigate } = useNavigation(); @@ -44,13 +45,28 @@ export default function Menu({ getCurrentTrain }) { const { originalStationList } = useStationList(); const { height, width } = useWindowDimensions(); const scrollRef = useRef(null); + const [mapsOpacity, setMapsOpacity] = useState(1); + const mapsSizeOffset = + (height / 100) * 60 - (((width / 100) * 80) / 20) * 9 + 60 - (Platform.OS == "ios" ? Constants.statusBarHeight : 0); useEffect(() => { - if (scrollRef.current) { - scrollRef.current.scrollTo({ - y: (height / 100) * 60 - (((width / 100) * 80) / 20) * 9 + 30, - animated: false, - }); - } + setTimeout(() => { + if (scrollRef.current) { + scrollRef.current.scrollTo({ + y: mapsSizeOffset, + animated: false, + }); + } + }, 10); + }, []); + useEffect(() => { + setTimeout(() => { + if (scrollRef.current) { + scrollRef.current.scrollTo({ + y: mapsSizeOffset, + animated: false, + }); + } + }, 10); }, []); //位置情報 @@ -186,21 +202,49 @@ export default function Menu({ getCurrentTrain }) { { + console.log(Object.keys(scrollRef.current)); + const scrollY = d.nativeEvent.contentOffset.y; + if (scrollY < mapsSizeOffset) { + setMapsOpacity(scrollY / mapsSizeOffset); + } + }} + snapToOffsets={[mapsSizeOffset]} > + + { + alert("地図をタップ"); + }} + > + - + <> {originalStationList.length != 0 && allStationData.length != 0 && (