1

Ich möchte ein ListView erstellen, dass die Zeile markiert ist, wenn eine Zeile ausgewählt ist, bis es erneut ausgewählt wird. Ich habe mit ListView-Beispiel aus dem reac-native documentation und verschiedenen anderen Tutorials gearbeitet, aber ich bekomme nirgendwo hin.React-Native: ListView Markierungszeile markieren, wenn ausgewählt

Ein Arbeitsbeispiel oder sogar die Methoden, die ich verwenden sollte, um mich in die richtige Richtung zu zeigen, würden sehr geschätzt werden.

Ich bin neu in React-Native, wenn es nicht schon offensichtlich ist.

+0

Haben Sie versucht, diese noch bauen? – rmevans9

+0

Ja, ich habe. Ich arbeite am Beispiel aus der Dokumentation. Ich bin mir nicht sicher, welche Methoden Sie anrufen sollen, zum Beispiel: TouchableWithoutFeedback, TouchableOpacity, TouchableHighlight. Ich finde die Erläuterungen zur Dokumentation unklar und wenig hilfreich. – Larney

+0

TouchableWithoutFeedback - Etwas, das berühren kann, aber sein Aussehen nicht ändert, wenn Sie dies tun. TouchableOpacity - Reduziert die Deckkraft der Ansicht, während sie berührt wird. TouchableHighlight - Erhöht die Helligkeit der Ansicht, während sie berührt wird. – rmevans9

Antwort

1

können Sie underlay Eigenschaft von TouchableHighlight react-native Komponente verwenden.

import React, { Component } from 'react'; 
import { 
    StyleSheet, 
    Text, 
    View, 
    ListView, 
    TouchableHighlight 
} from 'react-native'; 

class helloRN extends Component { 
    constructor() { 
    super(); 
    const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); 
    this.state = { 
     dataSource: ds.cloneWithRows(['row 1', 'row 2', 'row 3', 'row 4', 'row 5', 'row 6', 'row 7', 'row 8', 'row 9', 'row 10']), 
    }; 
    } 

    _onPressButton() { 
    console.log("On Press") 
    } 

    render() { 
    return (
     <ListView style = {styles.container} 
     dataSource={this.state.dataSource} 
     renderRow={ 
      (rowData) => <TouchableHighlight style = {styles.rowStyle} underlayColor = '#008b8b' onPress = {this._onPressButton}> 
          <Text style = {styles.rowText}>{rowData}</Text> 
         </TouchableHighlight> 
     } 
     /> 
    ); 
    } 
} 

const styles = StyleSheet.create({ 
    container: { 
     flex: 1, 
     backgroundColor: '#FFFFFF', 
    }, 
    rowText: { 
     fontSize: 20, 
     textAlign: 'center', 
     color: '#FFFFFF' 
    }, 
    rowStyle: { 
     backgroundColor: '#333333', 
     flex: 1, 
     height: 100, 
     margin: 2, 
     justifyContent: 'center', 
     alignItems: 'center', 
    }, 
}); 

module.exports = helloRN 

Ausgabe

enter image description here

+0

dies funktioniert nicht. auf Presseveranstaltung nicht einmal ausgelöst. – Lini

Verwandte Themen