ActionSheetのScrollViewの不具合を修正、同時にデザイン調整

This commit is contained in:
harukin-OneMix4 2023-12-29 01:36:37 +09:00
parent b23b59eab3
commit 789af1aa37
3 changed files with 32 additions and 22 deletions

View File

@ -1,4 +1,4 @@
import React, { useEffect, useState } from "react"; import React, { useEffect, useState, useRef } from "react";
import { import {
View, View,
LayoutAnimation, LayoutAnimation,
@ -11,7 +11,10 @@ import {
Platform, Platform,
} from "react-native"; } from "react-native";
import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons"; import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons";
import ActionSheet, { SheetManager } from "react-native-actions-sheet"; import ActionSheet, {
SheetManager,
useScrollHandlers,
} from "react-native-actions-sheet";
import { AS } from "../../storageControl"; import { AS } from "../../storageControl";
import LottieView from "lottie-react-native"; import LottieView from "lottie-react-native";
import trainList from "../../assets/originData/trainList"; import trainList from "../../assets/originData/trainList";
@ -239,13 +242,18 @@ export const EachTrainInfo = (props) => {
.replace("マリン", "マリンライナー") .replace("マリン", "マリンライナー")
.replace("ライナーライナー", "ライナー"); .replace("ライナーライナー", "ライナー");
}; };
const actionSheetRef = useRef(null);
const scrollHandlers = useScrollHandlers("scrollview-1", actionSheetRef);
return ( return (
<ActionSheet gestureEnabled={isTop} CustomHeaderComponent={<></>}> <ActionSheet
gestureEnabled={isTop}
CustomHeaderComponent={<></>}
ref={actionSheetRef}
>
<View <View
style={{ style={{
backgroundColor: "#0099CC", backgroundColor: "#0099CC",
borderRadius: 5, borderTopRadius: 5,
borderColor: "dark", borderColor: "dark",
borderWidth: 1, borderWidth: 1,
}} }}
@ -504,21 +512,19 @@ export const EachTrainInfo = (props) => {
</ScrollView> </ScrollView>
)} )}
<ScrollView <ScrollView
style={{ maxHeight: heightPercentageToDP("55%") }} {...scrollHandlers}
style={{
maxHeight: heightPercentageToDP(
from == "AllTrainDiagramView" ? "70%" : "50%"
),
}}
nestedScrollEnabled nestedScrollEnabled
onScroll={(e) => { onScroll={(e) => {
if (!Platform.OS !== "android") return; if (!Platform.OS !== "android") return;
setIsTop(e.nativeEvent.contentOffset.y < 0); setIsTop(e.nativeEvent.contentOffset.y < 0);
}} }}
> >
<View <View style={{ padding: 10, backgroundColor: "white" }}>
style={{
padding: 10,
backgroundColor: "white",
borderBottomLeftRadius: 5,
borderBottomRightRadius: 5,
}}
>
<View style={{ alignItems: "center" }}> <View style={{ alignItems: "center" }}>
{/* <LottieView {/* <LottieView
autoPlay autoPlay

View File

@ -1,4 +1,4 @@
import React from "react"; import React, { useRef } from "react";
import { import {
View, View,
LayoutAnimation, LayoutAnimation,
@ -8,18 +8,24 @@ import {
TouchableOpacity, TouchableOpacity,
} from "react-native"; } from "react-native";
import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons"; import { Ionicons, MaterialCommunityIcons } from "@expo/vector-icons";
import ActionSheet from "react-native-actions-sheet"; import ActionSheet, { useScrollHandlers } from "react-native-actions-sheet";
import LottieView from "lottie-react-native"; import LottieView from "lottie-react-native";
import { useTrainDelayData } from "../../stateBox/useTrainDelayData"; import { useTrainDelayData } from "../../stateBox/useTrainDelayData";
export const JRSTraInfo = () => { export const JRSTraInfo = () => {
const { getTime, delayData, loadingDelayData, setLoadingDelayData } = const { getTime, delayData, loadingDelayData, setLoadingDelayData } =
useTrainDelayData(); useTrainDelayData();
const actionSheetRef = useRef(null);
const scrollHandlers = useScrollHandlers("scrollview-1", actionSheetRef);
return ( return (
<ActionSheet gestureEnabled CustomHeaderComponent={<></>}> <ActionSheet
gestureEnabled
CustomHeaderComponent={<></>}
ref={actionSheetRef}
>
<View <View
style={{ style={{
backgroundColor: "#0099CC", backgroundColor: "#0099CC",
borderRadius: 5, borderTopRadius: 5,
borderColor: "dark", borderColor: "dark",
borderWidth: 1, borderWidth: 1,
}} }}
@ -63,13 +69,11 @@ export const JRSTraInfo = () => {
}} }}
/> />
</View> </View>
<ScrollView> <ScrollView {...scrollHandlers}>
<View <View
style={{ style={{
padding: 10, padding: 10,
backgroundColor: "white", backgroundColor: "white",
borderBottomLeftRadius: 5,
borderBottomRightRadius: 5,
}} }}
> >
{loadingDelayData ? ( {loadingDelayData ? (

View File

@ -50,7 +50,7 @@ export const StationDeteilView = (props) => {
key={currentStation} key={currentStation}
style={{ style={{
backgroundColor: "white", backgroundColor: "white",
borderRadius: 5, borderTopRadius: 5,
borderColor: "dark", borderColor: "dark",
borderWidth: 1, borderWidth: 1,
}} }}