Hasilkan poin peluru dalam flutter
Saya mencoba untuk mengambil input pengguna menggunakan textField di flutter, tapi saya ingin mengambilnya sebagai daftar poin. Saya pikir saya mungkin harus menggunakan paket yang disebut flutter_markdown, tetapi saya masih tidak tahu bagaimana saya bisa melakukannya. Seperti setiap baris terakhir harus secara otomatis dimulai dengan poin.
Jawaban
Salah satu cara Anda dapat melakukannya adalah seperti ini.
class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
TextEditingController tc = TextEditingController();
int currentTextLength = 0;
@override
Widget build(BuildContext context) {
return TextField(
maxLines: 4,
controller: tc,
onChanged: (String newText){
if(newText[0] != '•'){
newText = '• ' + newText;
tc.text = newText;
tc.selection = TextSelection.fromPosition(TextPosition(offset: tc.text.length));
}
if(newText[newText.length - 1] == '\n' && newText.length > currentTextLength){
tc.text = newText + '• ';
tc.selection = TextSelection.fromPosition(TextPosition(offset: tc.text.length));
}
currentTextLength = tc.text.length;
}
);
}
}
Catatan: Ini bukan solusi yang tepat. Karena tidak akan menaruh bullet point jika Anda mulai mengedit teks di tengah teks yang ada. Tapi mungkin ini bisa memberi Anda awal dalam suatu arah.
Jika Anda ingin memiliki daftar poin dari bidang teks, flutter_markdown mungkin tidak cocok untuk Anda. Karena itu menunjukkan teks penurunan harga.
TextFormField(
decoration: InputDecoration(
border: InputBorder.none, prefix: Text("."), // Or a Dot image
),
),
Jika Anda ingin memiliki kolom teks yang memiliki fungsi poin-poin, paket ini mungkin cocok untuk Anda:
https://pub.dev/packages/zefyr
Ini rumit jika Anda menulisnya sendiri.
Lihat kode contoh untuk mempelajari cara menggunakan:
https://github.com/memspace/zefyr/tree/master/packages/zefyr/example/lib