React Native – Using ListView

React Native – Using ListView

Untuk menampilkan sekumpulan data kepada pengguna, aplikasi biasanya menggunakan tabel. Untuk aplikasi android sering digunakan ListView, iOS menggunakan UITableView dan pada react native kita akan menggunakan ListView. Kita akan coba membuat sebuah tampilan seperti pada gambar berikut :

screen-shot-2016-10-26-at-1-59-45-pm

Pertama-tama buatlah sebuah componen dengan code listview di dalamnya seperti berikut :

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

export default class SampleMenu extends Component {
  constructor(props) {
    super(props);
    //definition of listview datasource
    const ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2});
    this.state = {
      dataSource: ds.cloneWithRows([
        'Music', 'Movie', 'Sport', 'Entertainment',
      ])
    };
  }

  render() {
    return (
      <View style={{flex: 1, paddingTop: 22,marginTop:45}}>
        <ListView style={styles.listview_style}
          dataSource={this.state.dataSource}
          renderRow={(rowData,sectionId,rowId) =>(
              <View style={styles.row}>
                <Text style={styles.row_style}>{rowData}</Text>
              </View>
          )}
        />
      </View>
    );
  }
}

const styles = StyleSheet.create({
  listview_style: {
    padding: 10,
    backgroundColor: '#F6F6F6',
  },
  row: {
    flexDirection: 'row',
    backgroundColor: 'white',
  },
  row_style: {
    flex: 1,
    fontSize: 15,
    textAlign: 'left',
    margin: 10,
  },
  separator_style: {
   flex: 1,
   height: StyleSheet.hairlineWidth,
   backgroundColor: '#8E8E8E',
  },
});

Code di atas akan menghasilkan interface seperti berikut :

screen-shot-2016-10-26-at-2-24-00-pm

Agar lebih enak dilihat tambahkan pembatas/separator pada setiap baris.

renderSeparator={(sectionId, rowId) => <View key={rowId} style={styles.separator_style} />}

Tambahkan code tersebut dibawah tag code “renderRow” pada ListView, maka tampilan listview akan berubah menjadi seperti berikut :

screen-shot-2016-10-26-at-2-31-40-pm

Selain menampilkan data, anda juga dapat menambahkan sebuah perintah yang dijalankan ketika pengguna memilih salah satu data. Pada contoh ini kita akan menampilkan sebuah pesan jika pengguna memilih salah satu data.

              <View style={styles.row}>
                <Text style={styles.row_style}>{rowData}</Text>
              </View>

Rubah code di atas menjadi seperti berikut :

            <TouchableHighlight onPress={() => {
                Alert.alert(
                  'Enter title here..',
                  'You click on '+rowData,
                );
            }}>
              <View style={styles.row}>
                <Text style={styles.row_style}>{rowData}</Text>
              </View>
            </TouchableHighlight>

Untuk memberikan respon ketika pengguna menekan suatu data, kita harus menggunakan component “TouchableHighlight”. Setelah menambahkan code tersebut maka ketika pengguna menekan salah satu data akan dijalankan fungsi “onPress”. Pada contoh ini aplikasi yang kita buat akan menampilkan pesan setiap kali pengguna menekan salah satu data.

screen-shot-2016-10-26-at-3-08-06-pm

Selesai, itulah contoh pengembangan aplikasi react native dengan listview sederhana..

Happy coding..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: