Saya membuat halaman persis seperti yang saya inginkan. Entah bagaimana kompiler menunjukkan kepada saya pesan kesalahan setiap kali saya pergi ke halaman itu. Sepertinya tidak ada yang salah. Semuanya bekerja dengan sempurna. Mengapa saya mendapatkan kesalahan ini setiap saat?

Kode saya seperti ini;

Stack(
  children: [
    Image.asset(
      "assets/someImage.jpg",
      fit: BoxFit.cover,
    ),
    Scaffold(
      backgroundColor: Colors.transparent,
      body: ListView(
        children: [
          SlimyCard(), // It's a package from pub.dev
          Expanded(
            child: ListView.builder(
              physics: NeverScrollableScrollPhysics(),
              itemCount: 20,
              itemBuilder: (context, index) {
                return ConstrainedBox(
                  constraints: BoxConstraints(
                    minWidth: MediaQuery.of(context).size.width,
                    minHeight: 50,
                    maxHeight: 500,
                  ),
                  child: Column(
                    mainAxisSize: MainAxisSize.min,
                    children: [
                      Container(
                        child: Row(
                          children: [
                            Text("Some text"),
                            Text("Some text."),
                            Text("Some text.."),
                          ],
                        ),
                      ),
                      Container(
                        child: Text("Some text..."),
                      ),
                    ],
                  ),
                );
              },
            ),
          ),
        ],
      ),
    ),
  ],
);

Saya mencoba menghapus diperluas pada ListView dan menambahkan di tempat lain tetapi semuanya rusak.

Kata kompiler;

Exception has occurred.
FlutterError (Incorrect use of ParentDataWidget.
The ParentDataWidget Expanded(flex: 1) wants to apply ParentData of type FlexParentData to a RenderObject, which has been set up to accept ParentData of incompatible type ParentData.
Usually, this means that the Expanded widget has the wrong ancestor RenderObjectWidget. Typically, Expanded widgets are placed directly inside Flex widgets.
The offending Expanded is currently placed inside a RepaintBoundary widget.
The ownership chain for the RenderObject that received the incompatible parent data was:
  _ScrollSemantics-[GlobalKey#25b39] ← Scrollable ← ListView ← Expanded ← RepaintBoundary ← IndexedSemantics ← NotificationListener<KeepAliveNotification> ← KeepAlive ← AutomaticKeepAlive ← KeyedSubtree ← ⋯)
4
Emre 4 April 2021, 18:39

2 jawaban

Jawaban Terbaik

Saya mencoba memahami mengapa diperluas diperlukan, karena SlimeyCard akan membutuhkan sebanyak yang dibutuhkan dan tidak lebih. Mengapa Anda awalnya menggunakan widget yang diperluas?

Kode di bawah ini berfungsi untuk saya, coba dan katakan jika Anda mendapatkan hasil yang sama

 return Stack(
  children: [
    Container(height: 1000,width: double.infinity, color: Colors.white,),// instead of the background image
    // Image.asset(
    //   "assets/someImage.jpg",
    //   fit: BoxFit.cover,
    // ),
    Scaffold(
      backgroundColor: Colors.transparent,

      body: ListView(
        children: [
          SlimyCard(bottomCardHeight: 500,),
          ListView.builder(
            shrinkWrap: true,
            physics: NeverScrollableScrollPhysics(),
            itemCount: 20,
            itemBuilder: (context, index) {
              return ConstrainedBox(
                constraints: BoxConstraints(
                  minWidth: MediaQuery.of(context).size.width,
                  minHeight: 50,
                  maxHeight: 500,
                ),
                child: Column(
                  mainAxisSize: MainAxisSize.min,
                  children: [
                    Container(
                      child: Row(
                        children: [
                          Text("Some text"),
                          Text("Some text."),
                          Text("Some text.."),
                        ],
                      ),
                    ),
                    Container(
                      child: Text("Some text..."),
                    ),
                  ],
                ),
              );
            },
          ),

        ],
      ),
    ),
  ],
);
1
Kami Tzayig 5 April 2021, 13:18

Saya tidak tahu apa UI yang Anda inginkan, tetapi saya membuat beberapa perubahan dalam kode Anda dan berfungsi tanpa kesalahan. Jika ini bukan sesuatu yang Anda inginkan, silakan bagikan tangkapan layar UI yang Anda inginkan.

Stack(
  children: [
    Image.asset('assets/someImage.jpg', fit: BoxFit.cover),
    Scaffold(
      backgroundColor: Colors.transparent,
      body: Column(
        children: [
          SizedBox(height: 130, child: Placeholder()), // Replace this with your card.
          Expanded(
            child: ListView.builder(
              physics: NeverScrollableScrollPhysics(),
              itemCount: 20,
              itemBuilder: (context, index) {
                return ConstrainedBox(
                  constraints: BoxConstraints(
                    minWidth: MediaQuery.of(context).size.width,
                    minHeight: 50,
                    maxHeight: 500,
                  ),
                  child: Column(
                    mainAxisSize: MainAxisSize.min,
                    children: [
                      Container(
                        child: Row(
                          children: [
                            Text('Some text'),
                            Text('Some text.'),
                            Text('Some text..'),
                          ],
                        ),
                      ),
                      Text('Some text...'),
                    ],
                  ),
                );
              },
            ),
          ),
        ],
      ),
    ),
  ],
)
0
CopsOnRoad 4 April 2021, 19:43