Die Schaffung einer visuell interaktiven und benutzerfreundlichen Erfahrung ist der Schlüssel zu Entwicklung mobiler Apps. Die FlatList von React Native ist äußerst vielseitig und effizient und wird häufig zum Rendern großer Listen verwendet. Mit dem zusätzlichen Vorteil der Drag-and-Drop-Funktionalität können Sie Ihre FlatList noch ansprechender gestalten. In diesem Artikel zeigen wir Ihnen, wie Sie eine ziehbare FlatList in React Native implementieren, komplett mit einem Scale-Dekorator, um Elemente auftauchen zu lassen und auf Berührungen zu reagieren.
Voraussetzungen
Bevor Sie beginnen, sollten Sie sicherstellen, dass Sie über grundlegende Kenntnisse von React Native verfügen und sich mit Animationen in Native reagieren. Außerdem müssen Sie die folgenden Bibliotheken installieren:
- react-native-reanimated - für Animationen.
- react-native-gesture-handler - für die Handhabung von Berührungsgesten.
- react-native-draggable-flatlist - für ziehbare Listenfunktionen.
npm install react-native-reanimated react-native-gesture-handler react-native-draggable-flatlist
Schritt 1: Draggable FlatList einrichten
Beginnen Sie mit dem Import der erforderlichen Komponenten und dem Einrichten einer einfachen verschiebbaren FlatList
.
importieren Sie React von 'react'; importiere { StyleSheet, Ansicht, Text } von 'react-native'; importiere DraggableFlatList, { ScaleDecorator } von 'react-native-draggable-flatlist'; const data = Array.from({ length: 10 }, (v, i) => ({ key: `Element-${i}`, label: `Element ${i + 1}`, })); const DraggableList = () => { const [items, setItems] = React.useState(data); const renderItem = ({ item, drag, isActive }) => { return ( {item.label} ); }; return ( setItems(data)} keyExtractor={(item) => item.key} renderItem={renderItem} /> ); }; export default DraggableList;
Es geht um Folgendes:
- Daten-Array: Wir richten ein Array von Elementen ein, die in der Liste dargestellt werden sollen.
DraggableFlatList
Komponente: Hier wird eine Liste angezeigt, in der Elemente gezogen werden können.- Gegenstand rendern: Jedes Element zeigt Text an und verwendet
ziehen
aus der Render-Requisite, um das Ziehen bei langem Drücken zu ermöglichen. - ScaleDecorator: Umhüllt jedes Listenelement und bietet einen Skalierungseffekt, wenn es aktiv ist.
Schritt 2: Anwenden des Skalen-Dekorators
Der ScaleDecorator
aus react-native-draggable-flatlist
ist ein leistungsfähiges Werkzeug, um visuelles Feedback zur Artikelauswahl zu geben. Einstellung activeScale
steuert die Skalierungsgröße, wenn ein Element gezogen wird.
<ScaleDecorator activeScale={1.1}>
In diesem Beispiel ist die Einstellung activeScale={1.1}
skaliert das Element auf 110% seiner ursprünglichen Größe, wenn es aktiv ist. Passen Sie den Skalierungsfaktor nach Bedarf für Ihre Benutzeroberfläche an.
Schritt 3: Benutzerdefinierte Stile hinzufügen
Verbessern Sie das Aussehen und die Interaktion, indem Sie einige benutzerdefinierte Stile hinzufügen.
const styles = StyleSheet.create({ itemContainer: { padding: 20, marginVertical: 8, marginHorizontal: 16, borderRadius: 8, borderWidth: 1, borderColor: '#ddd', }, text: { fontSize: 18, fontWeight: 'bold', }, });
Diese Stile definieren Auffüllungen, Ränder und Grundfarben und verleihen jedem Element ein kartenähnliches Aussehen.
Schritt 4: Animationen mit react-native-reanimated
(fakultativ)
Wenn Sie mehr Kontrolle über die Skalierung wünschen oder andere Eigenschaften während des Ziehens animieren möchten, sollten Sie die Integration von react-native-reanimated
. Hier ein kurzes Beispiel dafür, wie man einen sanften Scale-in und Scale-out-Effekt mit Wiederbelebt
.
- Installieren Sie Reanimated und importieren Sie es.
- Wickeln Sie jeden Artikel in ein
Animierte.Ansicht
wobei sich der Skalenwert je nach Ziehzustand ändert.
import Animated, { useAnimatedStyle, withSpring } from 'react-native-reanimated';
const renderItem = ({ item, drag, isActive }) => { const scale = isActive ? withSpring(1.1) : withSpring(1); const animatedStyle = useAnimatedStyle(() => ({ transform: [{ scale }], })); return ( {item.label} ); };
Prüfung und Fehlersuche
Führen Sie die App auf einem Gerät oder in einem Emulator aus und testen Sie die Drag-and-Drop-Funktion, indem Sie ein Element gedrückt halten und es dann verschieben.
Tipps
- Experimentieren mit
activeScale
inScaleDecorator
für den idealen Maßstab. - Passen Sie die Auffüllungen und Ränder der Elemente an, um ein Layout zu erstellen, das Ihrem Design entspricht.
- Verwenden Sie
withSpring()
in Reanimated für einen fließenden Übergang von der Skalierung zur Skalierung.
Abschluss
Hinzufügen eines Draggables FlatList
mit einem Skalendekorator in Native reagieren verbessert die Benutzerinteraktion, indem es visuelles Feedback gibt und ein nahtloses Drag-and-Drop-Erlebnis schafft. Egal, ob es sich um eine Aufgabenliste, einen Aufgabenmanager oder sogar eine UI zum Neuordnen handelt, der Scale Decorator sorgt dafür, dass sich die App ausgefeilt und reaktionsschnell anfühlt.
Durch die Kombination react-native-draggable-flatlist, ScaleDecorator,
und optionalen Reanimated-Animationen können Sie eine dynamische und interaktive Liste erstellen, die sich von anderen abhebt. Jetzt sind Sie bereit, eine ansprechende, ziehfreundliche Liste zu implementieren, die die Benutzer lieben werden!