Я использую Expo
для своего приложения. У меня есть горизонтальный плоский список, в котором я отображаю свои данные react native paper's
Card. Я видел, что у карты есть функция onPress. Я использовал это для перехода на другую страницу. Но функция onPress не запускается на устройстве Android. Я знаю, что сенсорная непрозрачность React native имеет проблему с позиционированием на Android. Я попробовал hitSlop
и встроенный стиль zIndex
, но все равно не работает. Я также оборачиваю свою карту с react-native's
touchable-opacity и игра с позиционированием мне все равно не помогла, только это работает, когда я использовал react-native-gesture-handler's
touchable-opacity, но тогда это не работает на IOS. Надеюсь, кто-нибудь может мне помочь...
import React from 'react';
import { Card } from 'react-native-paper';
import { useNavigation } from '@react-navigation/native';
interface Iprops {
item: string;
}
export default function RenderCard({ item }: Iprops) {
const navigation = useNavigation();
return (
<Card
hitSlop={{ "bottom": 30, "top": 30, "right": 30, "left": 30 }}
onPress={() => {
navigation.navigate(`detail`, { // THIS DOES NOT TRIGGER ON ANDROID
"id": `${item.pk}`
});
}}
style={{ "marginBottom": 20 }}>
<Card.Cover
source={{ "uri": `${item.img_url}` }} />
<Card.Actions>
<Card.Title title={item.name} subtitle="Card Subtitle" />
</Card.Actions>
</Card>
);
}