Tampilan Desain Chat Cantik Flutter Starter Template

Share:
Tampilan Desain Chat Cantik Flutter Starter Template

Tampilan Chat UI Flutter. Flutter Chat UI. Professional Mobile Chat UI. Responsive Mobile Chat UI. Chat UI for Flutter. Android Mobile Chat. Simple and Elegant Mobile Chat UI. Flutter Starter Template. Flutter List View Simple DesignFlutter Login Design Fresh & ModernFlutter News Grid DesignTampilan Halaman Grid View List Product FlutterFlutter Vertical dan Horizontal Scoll DesignTampilan Profile Flutter



1. Buat sebuah project baru flutter lalu copy script di bawah ini di dalam lib/main.dart



import 'package:flutter/material.dart'; void main() { runApp(MaterialApp( debugShowCheckedModeBanner: false, title: 'Chat UI', home: ChatScreen(), )); } class ChatScreen extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( titleSpacing: 0.0, leading: Padding( padding: const EdgeInsets.only(top: 8, bottom: 8), child: Material( shape: CircleBorder(), child: CircleAvatar( radius: 20.0, backgroundImage: NetworkImage( 'https://cdn.pixabay.com/photo/2016/11/18/23/38/child-1837375_640.png', ), ), ), ), title: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text('Mr. Jhon Due'), Text( 'CEO of Porkaone', style: TextStyle(fontSize: 10), ) ], )), body: Container( child: Column( children: [ Expanded( child: ListView.builder( itemCount: 10, itemBuilder: (context, index) { return ChatBubble( message: 'Lorem ipusm sit dolor amet consectur', isMe: index % 2 == 0 ? true : false, ); }, ), ), Padding( padding: const EdgeInsets.all(10.0), child: Row( children: [ Expanded( child: TextField( style: const TextStyle(fontSize: 16.0), decoration: InputDecoration( hintText: 'Ketik pesan...', border: OutlineInputBorder( borderRadius: BorderRadius.circular(30.0), ), contentPadding: const EdgeInsets.symmetric( vertical: 12.0, // Atur ukuran tinggi form input di sini horizontal: 16.0, // Atur ukuran lebar form input di sini ), ), ), ), const SizedBox(width: 10.0), Container( width: 45.0, height: 45.0, child: FloatingActionButton( onPressed: () {}, child: Icon(Icons.send), ), ), SizedBox( width: 5, ), Container( width: 45.0, height: 45.0, child: FloatingActionButton( onPressed: () {}, child: Icon(Icons.camera_alt_outlined)), ) ], ), ), ], ), ), ); } } class ChatBubble extends StatelessWidget { final String message; final bool isMe; ChatBubble({required this.message, required this.isMe}); @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.symmetric(vertical: 8.0, horizontal: 10.0), child: Row( mainAxisAlignment: isMe ? MainAxisAlignment.end : MainAxisAlignment.start, children: [ Column( crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, children: [ ConstrainedBox( constraints: BoxConstraints( maxWidth: MediaQuery.of(context).size.width * 0.5, // Maksimal setengah lebar layar ), child: Container( padding: const EdgeInsets.all(12.0), decoration: BoxDecoration( color: isMe ? Colors.blue : Colors.grey[300], borderRadius: BorderRadius.only( topLeft: Radius.circular(16), topRight: Radius.circular(16), bottomLeft: Radius.circular(isMe ? 16 : 0), bottomRight: Radius.circular(isMe ? 0 : 16), ), ), child: Column( crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, children: [ Wrap( alignment: WrapAlignment.start, children: [ Text( message, style: TextStyle( color: isMe ? Colors.white : Colors.black, fontSize: 16.0, ), ), ], ), ], ), ), ), SizedBox( height: 5, ), Row( children: [ if (!isMe) Padding( padding: const EdgeInsets.only(right: 5), child: CircleAvatar( radius: 10.0, // Mengatur ukuran lingkaran avatar backgroundImage: NetworkImage( 'https://cdn.pixabay.com/photo/2016/11/18/23/38/child-1837375_640.png', ), ), ), Column( crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, children: [ Text( 'Monday 20 Mei 2023 15:31', style: TextStyle(fontSize: 9), ), Text( 'Nabil Putra', style: TextStyle(fontSize: 9, fontWeight: FontWeight.w500), ), ], ), if (isMe) Padding( padding: const EdgeInsets.only(left: 5), child: CircleAvatar( radius: 10.0, // Mengatur ukuran lingkaran avatar backgroundImage: NetworkImage( 'https://cdn.pixabay.com/photo/2016/11/18/23/38/child-1837375_640.png', ), ), ), ], ), ], ), ], ), ); } }


Penjelasan Script di atas:

  1. Impor Paket Flutter: Pada baris kode ini, kita mengimpor paket atau library yang diperlukan dari Flutter untuk membangun antarmuka pengguna (UI) aplikasi.
  2. Fungsi main(): Ini adalah fungsi utama yang akan dieksekusi saat aplikasi dijalankan. Di dalamnya, kita menggunakan runApp() untuk menjalankan aplikasi. MaterialApp digunakan sebagai widget utama yang menyediakan kerangka dasar aplikasi Flutter. Properti yang diatur dalam MaterialApp adalah:debugShowCheckedModeBanner: Digunakan untuk menampilkan atau menyembunyikan label "Debug" di sudut kanan atas aplikasi.
  3. title: Digunakan untuk memberikan judul aplikasi.
  4. home: Mengarahkan ke widget ChatScreen() sebagai halaman utama aplikasi.
  5. Class ChatScreen: Ini adalah class yang mengimplementasikan widget StatelessWidget. Di dalamnya, kita mendefinisikan antarmuka pengguna menggunakan widget Scaffold. Scaffold adalah komponen dasar yang digunakan untuk mengatur tata letak aplikasi. Properti yang diatur dalam Scaffold adalah:appBar: Mengatur bilah atas aplikasi. Di dalamnya, terdapat widget AppBar dengan judul, gambar avatar, dan informasi pengguna.
  6. body: Mengatur konten utama aplikasi. Di dalamnya, terdapat widget Container yang berisi Column untuk menampilkan daftar ChatBubble.
  7. Class ChatBubble: Ini adalah class yang mengimplementasikan widget StatelessWidget. Di dalamnya, kita mendefinisikan tampilan balon chat dengan menggunakan widget Row. Tampilan balon chat terdiri dari beberapa elemen, seperti teks pesan, waktu, dan avatar pengirim.
Secara keseluruhan, script ini membangun antarmuka pengguna (UI) untuk aplikasi chatting sederhana. Hal ini mencakup tampilan daftar chat dan kemampuan pengguna untuk mengirim pesan baru melalui input teks dan tombol kirim.



2. Tampilan saat script di jalankan di emulator. Sederhana tapi terlihat mewah dan profesional. Kita menggunakan beberapa widget seperti app bar, image netwokr, text, container, textformfield, row, column dan lainnya.

Flutter Chat UI Sahretech
Flutter Chat UI





Baca Artikel Lain ✨
📰 1. Membuat Restful Api di Laravel Tanpa Library Tambahan Part 1 read more
📰 2. Menampilkan Data dengan API dan Token di Laravel Part 2 read more
📰 3. Cara Membuat Custom Registrasi dan Prosesnya di Laravel Part 1 read more
📰 4. Cara Membuat Custom Login di Laravel Part 2 read more



No comments

Jangan lupa kasih komentar ya!. Karena komentar kalian membantu kami menyediakan informasi yang lebih baik

Tidak boleh menyertakan link atau promosi produk saat berkomentar. Komentar tidak akan ditampilkan. Hubungi 081271449921(WA) untuk dapat menyertakan link dan promosi