Hasilkan poin peluru dalam flutter

Aug 18 2020

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

1 JigarPatel Aug 18 2020 at 18:47

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.

2 JupiterChan Aug 18 2020 at 15:46

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
              ),
            ),
sleepingkit Aug 19 2020 at 12:09

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