Почему у меня есть пустое место в ListView, когда я помещаю его в ящик, но не когда он находится за пределами ящика?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Почему у меня есть пустое место в ListView, когда я помещаю его в ящик, но не когда он находится за пределами ящика?

Сообщение Anonymous »

В моем проекте Flutter я хотел создать текстовое поле для поиска имен пользователей. У меня лежит в ящике и поиск и все работает нормально. Я хотел отобразить найденные имена пользователей внутри ListView, поэтому я использовал Listview.builder.

У меня проблема в том, что полученный список имеет пустое место вверху, но только тогда, когда я помещаю его в ящик. Я тестировал его в другом представлении без ящика, затем нет пустого места, но когда я меняю его так, чтобы он находился внутри ящика, в списке результатов вверху появляется пустое место.
Вот мой тест класс:

Код: Выделить всё

class Test extends StatelessWidget {
final List entries = ['A', 'B', 'C'];
final List colorCodes = [600, 500, 100];
List _searchResults = ["TestUser1", "TestUser2"];  // Die Liste der Suchergebnisse

@override
Widget build(BuildContext context) {
return Drawer(child: ListView(
padding: EdgeInsets.zero,
children: [
DrawerHeader(
decoration: BoxDecoration(
color: Color(0xFF2C2C2C),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
Text(
'Quester',
style: TextStyle(
color: Colors.white,
fontSize: 28,
fontWeight: FontWeight.bold,
),
textAlign: TextAlign.center,
),
],
),
),
// Suchleiste mit Button
Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
children: [
Expanded(
child: TextField(
controller: SearchController(),
style: TextStyle(color: Colors.white),
decoration: InputDecoration(
hintText: 'Benutzernamen eingeben...',
hintStyle: TextStyle(color: Colors.white70),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.white),
),
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.teal),
),
),
onSubmitted: (value) {
// Suchfunktion bei Enter auslösen
},
),
),
IconButton(
icon: Icon(Icons.search, color: Colors.white),
onPressed: () {
// Suchfunktion bei Button-Klick auslösen
},
),
],
),
),
// Dynamische Liste der Suchergebnisse
if (_searchResults.isNotEmpty)
Container(
decoration: BoxDecoration(
color: Colors.blueGrey.withOpacity(0.8), // Hellere graue Hintergrundfarbe
border: Border.all(color: Colors.blueGrey), // Rahmen um die gesamte Liste
borderRadius: BorderRadius.circular(10),
),
child: ListView.builder(
shrinkWrap: true,
itemCount: _searchResults.length,
itemBuilder: (context, index) {
return Container(
margin: EdgeInsets.symmetric(vertical: 4.0),
decoration: BoxDecoration(
color: Colors.blueGrey, // Hellere graue Farbe für die Listeneinträge
borderRadius: BorderRadius.circular(8),
border: Border.all(color: Colors.blueGrey), // Rahmen um jeden Eintrag
),
child: ListTile(
title: Text(
_searchResults[index],
style: TextStyle(color: Colors.white),
),
onTap: () {

},
),
);
},
),
),
ListTile(
leading: Icon(Icons.add, color: Colors.white),
title: Text('Item 1', style: TextStyle(color: Colors.white)),
onTap: () {
// Aktion für Item 1
},
),
ListTile(
leading: Icon(Icons.add, color: Colors.white),
title: Text('Item 2', style: TextStyle(color: Colors.white)),
onTap: () {
// Aktion für Item 2
},
),
// Weitere Items hier hinzufügen
],
),
);
}
}
Если вы измените «Ящик возврата...» на «Ящик возврата...», то в нем не будет пустого места.
Есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/790 ... t-not-when
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»