标签: flutter-listview

在 Flutter 中点击另一个项目 ListView 后如何取消选择已选择的项目?

我想允许用户从列表中只选择一个选项,如果他一个接一个地选择,那么只有最后一个选项应该被认为是被选中的。

在当前代码中,用户可以从我想避免的列表中选择多个选项。

试过的代码:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Test App',
      theme: new ThemeData(
        primarySwatch: Colors.red,
      ),
      home: new MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  List<int> indexList = new List();
  }

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text('Selected ${indexList.length}  ' + indexList.toString()),
      ),
      body: new ListView.builder(
        itemCount: 3,    
        itemBuilder: (context, …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-listview

4
推荐指数
1
解决办法
2888
查看次数

为什么只有 ListView.builder() 中的内容不滚动?

我有一个带有 Text 小部件和 ListView 的屏幕,当我尝试在 ListView 内滚动时,它不允许我滚动。

我的身体是 SingleChildScrollView 但它没有为 ListView.builder 提供滚动视图。我试图将 ListView.build 包装在 Expanded 中,但没有成功。

class HomePageState extends State<HomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: new AppBar(
          title: Text("MyBar"),
          centerTitle: true,
        ),
        body: SingleChildScrollView(child: Column(
          children: <Widget>[
            Text(
                "Information"),
            Container(
                child: ListView.builder(
                    scrollDirection: Axis.vertical,
                    shrinkWrap: true,
                    itemCount: widget.match.players.length,
                    itemBuilder: (context, index) {
                      return Column(
                        children: <Widget>[
                          Card(
                              child: ListTile(
                            leading: CircleAvatar(
                              radius: 30.0,
                              foregroundColor: 
                                Theme.of(context).primaryColor,
                              backgroundColor: Colors.grey,
                              backgroundImage: 
                          CachedNetworkImageProvider("url"),
                            ),
                            title: new Row(
                                mainAxisAlignment:
                                    MainAxisAlignment.spaceBetween,
                                children: …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout flutter-listview flutter-widget

4
推荐指数
1
解决办法
4624
查看次数

如何在颤动中获取列表视图滚动的索引号?

我在 flutter 应用程序中为列表视图构建器使用以下代码我需要在滚动时获取列表中项目的索引。就像onPageChanged:(){}使用时的功能PageView.Builder

return ListView.builder(
              itemCount: posts.length,
              itemBuilder: (context, index) {
                final item = posts[index];
                return Post(index: index, title: 'Test', imageUrl: 'https://www.google.com',);
              },
            );
Run Code Online (Sandbox Code Playgroud)

我怎么能得到那个?

indexing flutter flutter-listview

4
推荐指数
1
解决办法
2881
查看次数

Flutter 错误:body 可能正常完成,导致返回 'null',但返回类型是潜在的不可为 null 的类型

我正在使用启用了空安全的新 dart 版本 <2.13.0-107.0.dev>。

有了这个任务列表:

  List<Task> tasks = [
    Task(name: 'find a way to live happy'),
    Task(name: 'Listen to music!!!'),
    Task(name: 'Live in the other world till ur power is off'),
  ];
Run Code Online (Sandbox Code Playgroud)

当我尝试在 ListView.builder 构造函数中使用它时:

  @override
  Widget build(BuildContext context) {
    return ListView.builder(
      itemCount: tasks.length,
      itemBuilder: (context, index) {
         TaskTile(
          taskTitle: tasks[index].name,
          isChecked: tasks[index].isDone,
          checkboxCallback: (bool? checkboxState) {
            setState(() {

              tasks[index].toggleDone();
            });
          },
        );
      },
    );
  }
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

错误:主体可能正常完成,导致返回“空”,但返回类型可能是不可为空的类型。

以及运行日志中的此错误:

错误:必须返回非空值,因为返回类型“Widget”不允许为空。

有关更多信息,Task 类定义如下:

class Task {
  String name;
  bool isDone;

  Task({this.name …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-listview dart-null-safety

4
推荐指数
2
解决办法
1万
查看次数

如何在flutter listview中按索引号滚动到索引?

我有一个列表视图。我想通过相应的索引号转到某个小部件。

我已经尝试过使用 ScrollController,但它需要偏移值来跳转到索引。但我想使用它的索引号跳转到一个小部件。

请帮我修复它提前谢谢。

flutter flutter-listview

3
推荐指数
1
解决办法
5302
查看次数

Flutter Web 仪表板内容 - 最佳实践?

我正在创建一个管理仪表板,我目前有两个连续的视图小部件:

  • 侧边栏 - 300px(不是抽屉,因为我希望它永久显示) - 有一个列表。
  • 一个内容小部件 - 扩展。

管理仪表板视图

这是页面的代码:

import 'package:flutter/material.dart';
import 'package:webenrol/widgets/dashboard_admin.dart';
import 'package:webenrol/widgets/drawer.dart';

//TODO: add flappy_search_bar package and add to appBar

class AdminDashboard extends StatelessWidget {
  //TODO: Add title
  static String id = '/admin_dashboard';
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Admin Dashboard - Overview'),),
      body: Container(child: Row(
        children: <Widget>[
          //Sidebar
          DashboardSideBar(),
          //Main Dashboard Content
          DashboardAdmin(),
        ],
      )),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

我将为侧边栏中的链接创建其他内容小部件,我最希望的是,将内容小部件更新为在菜单上单击的内容,并且还将 ListTile 选择为活动状态,而无需重新加载页面。

这可能吗,我的 WebApp 是否为此正确布局,还是我需要更改它?

flutter flutter-layout flutter-navigation flutter-listview flutter-web

3
推荐指数
1
解决办法
3460
查看次数

如何使flutter中的水平ListView的高度与其子级最大高度一样高,放置在列中?

我将水平ListView放置在一列中,并且我希望它具有所需的高度。实现此目的的一种方法是将 包装ListView在 a 中SizedBox并为其指定特定的硬编码height. 此外,将其包装在Expanded小部件中将导致ListView占用列中的额外可用空间。但是,我希望它自动占据所需的高度。如何才能实现这一目标?谢谢。

示例代码如下:

@override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        child: Padding(
          padding: const EdgeInsets.all(20),
          child: Column(
            children: [
              Text("Hi there!"),
              SizedBox(
                height: 50,
                child: ListView(
                  scrollDirection: Axis.horizontal,
                  shrinkWrap: true,
                  children: List.generate(
                    4,
                    (index) => Text("Item $index "),
                  ),
                ),
              ),
              ElevatedButton(
                onPressed: () {},
                child: Text("This is a button"),
              ),
            ],
          ),
        ),
      ),
    );
  }
Run Code Online (Sandbox Code Playgroud)

输出是: 在此输入图像描述

但我想要的(周围没有更多或更少的空间ListView): 在此输入图像描述

flutter flutter-layout flutter-listview

3
推荐指数
1
解决办法
3063
查看次数

具有动态项目的 Listview.builder

我对 Flutter 还很陌生,正在尝试制作一个简单的应用程序,在其中使用 API 获取数据并尝试显示结果。

这个函数负责获取数据(这个函数工作正常,我获取数据):

Connection connection = Connection();
  String textValue = '';
  Future<void> createlist() async {
    List<MoviesByTitle> movieTitle = [];
    String response = await connection.getMovieByTitle();
    var data = jsonDecode(response);
    var results = data['results'];
    for (int i = 0; i < results.length; i++) {
      movieTitle.add(
        MoviesByTitle(
          movieId: results[i]['id'],
          title: results[i]['original_title'],
          shortDescription: results[i]['overview'],
          year: results[i]['release_date'],
        ),
      );
    }
  }
Run Code Online (Sandbox Code Playgroud)

屏幕本身来了:

 @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Movies app"),
      ),
      body: Column(
        children: [
          TextField(
            decoration: const …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-listview flutter-card

3
推荐指数
1
解决办法
7104
查看次数

Flutter:为什么我的 listTile 颜色被容器颜色覆盖?

我有一个返回此 listTile 的 listTile 构建器。listTile 的颜色(白色)被其父级覆盖。我该如何阻止这个?

return ListTile(
   key: Key(index.toString()),
   tileColor: Colors.white,
   title: Text(widget.userExercises[index].name),
   subtitle: Text("${widget.userExercises[index].reps} Reps"),
   trailing: Text("${widget.userExercises[index].sets} Sets"),
   onTap: () => widget.editFunction(widget.userExercises[index]),
);
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的应用程序时,tileColor 会被父容器的颜色覆盖。

return Container(
  alignment: Alignment.center,
  color: Colors.lightBlue,
  child: ExerciseTable(
    userExercises: todaysExercises,
    editFunction: _showEditDialog,
  ),
);
Run Code Online (Sandbox Code Playgroud)

结果如下:

卧推的瓷砖应该是白色的

谢谢你!(抱歉,图像尺寸我不知道如何更改)

listview colors flutter flutter-listview listtile

3
推荐指数
1
解决办法
746
查看次数

我想在单击 onTap 时更改 ListView 子项 CustomListTile 的颜色,并将其他子项颜色设置为默认颜色?

在抽屉中,在列表视图中想要在单击 onTap 时更改 CustomListTile 的颜色并将所有其他子项的颜色设置为默认值?

class CustomListTile extends StatelessWidget {

  final Color itemContainerColor;

  const CustomListTile({
    //deafult color is Colors.white
    this.itemContainerColor= Colors.white,
  });

  @override
  Widget build(BuildContext context) {
    return InkWell(
      onTap: (){},

    child: Container(
    margin: EdgeInsets.symmetric(vertical: 4),
    padding: EdgeInsets.symmetric(vertical: 5, horizontal: 16),
    width: 150,
    decoration: BoxDecoration(

        color: itemContainerColor,
       )
    child: 
        Text(
          "ListTile 1",
          style: TextStyle(
              fontSize: 20,
              color: Colors.green,
              fontWeight: FontWeight.w600),
        ),

     ),
   ));
  }
 }
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout flutter-animation flutter-container flutter-listview

2
推荐指数
1
解决办法
1514
查看次数