Saturday, September 15, 2018

Cara memperbaiki itemTap yang tidak menyala saat ada tombol didalam template listview nativescript

Cara memperbaiki itemTap yang tidak menyala saat ada tombol didalam template listview nativescript

Pada pembahasan kali ini saya akan berbagi seputar cara memperbaiki itemTap yang tidak menyala saat ada button didalam template listview. Menurut asumsi saya, penyebab utama kenapa hal ini tidak berjalan sebagaimana mestinya adalah karna si listener kebingungan, dimana didalam listview itu sendiri ada listener dengan nama itemTap, dan di dalam button ada listener dengan nama tap.

Pertanyaan utama yang akan muncul adalah, apakah hal ini bisa kita atasi? jawabannya tentu bisa, berikut adalah caranya.

Ibaratkan kita punya listview sederhana seperti ini:

<ListView items="{{ items }}" itemTap="onTap">
    <ListView.itemTemplate>
      <StackLayout>
        <Label text="{{ city }}" />
        <Button text="Button" tap="btnTap" />
      </StackLayout>
    </ListView.itemTemplate>
</ListView>

Sintak diatas masih dalam keadaan tidak bejalan dengan baik, Dan cara menyelesaikan masalah ini cukuplah mudah, caranya sederhana, kamu cukup tambahkan atribut loaded pada tag buttonnya, seperti ini :

<ListView items="{{ items }}" itemTap="onTap">
    <ListView.itemTemplate>
      <StackLayout>
        <Label text="{{ city }}" />
        <Button text="Button" tap="btnTap" loaded="btnLoaded" />
      </StackLayout>
    </ListView.itemTemplate>
</ListView>

Tunggu ini masih belum beres, tugas kamu selanjutnya adalah menghandle fungsi btnLoadednya di bagian JS-nya, caranya :

exports.btnLoaded = function (args) {
    var btn = args.object;
    btn.android.setFocusable(false);
};

Jika sudah, coba kamu test kembali apakah sekarang listenernya sudah berjalan dengan normal apa belum, seharusnya sih sudah berjalan normal. Saya mempraktikan cara ini pada nativescript 4.x. Perlu kamu ketahui, isu ini sudah ada dari nativescript yang dahulu di tahun 2015.

Mungkin saya cukupkan dulu sampai disini, semoga tulisan ini bermanfaat dan dapat membantu kamu yah :)

Saya hanya seorang "newbie" yang baru bisa ngoding lohor kemarin.


EmoticonEmoticon