AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题 / 76924486
Accepted
IMemon
IMemon
Asked: 2023-08-18 03:13:25 +0800 CST2023-08-18 03:13:25 +0800 CST 2023-08-18 03:13:25 +0800 CST

如何扩展列表视图的子级,以便所有子级在颤振中占据最大宽度

  • 772

我有一个列表视图来显示所有可用的名称..在容器内获取文本小部件..

在这里,我希望列表视图中所有名称的容器具有相同的宽度...

比如..如果名称只有2..这些应该占据totalwidth/2等等以获得更多名称

就像如果名字是 4...这些应该占据总宽度/4

Scaffold(
      body: Center(
        child: Container(
          height: 80,
          color: Colors.grey,
          child: ListView.builder(
            scrollDirection: Axis.horizontal,
              itemCount: names.length,
              itemBuilder: (context,index){
            return Padding(
              padding: const EdgeInsets.all(8.0),
              child: Container(
                decoration: BoxDecoration(
                  color: Colors.green,
                  borderRadius: BorderRadius.circular(8.0),
                ),
                child: Center(child: Text(names[index])),
              ),
            );

          }),
        ),
      ),
    );

我得到了这个...这不是我想要的 在此输入图像描述

flutter
  • 2 2 个回答
  • 31 Views

2 个回答

  • Voted
  1. MobileDev
    2023-08-18T04:02:52+08:002023-08-18T04:02:52+08:00
        class MyApp extends StatelessWidget {
          List<String> names = ["first","second","third","fourth"]; //Your names list here
          
          @override
          Widget build(BuildContext context) {
            return MaterialApp(
              theme: ThemeData.dark().copyWith(
                scaffoldBackgroundColor: darkBlue,
              ),
              debugShowCheckedModeBanner: false,
              home: Scaffold(
              body: Center(
                child: Container(
                  height: 80,
                  color: Colors.grey,
                  child: ListView.builder(
                    scrollDirection: Axis.horizontal,
                      itemCount: names.length,
                      itemBuilder: (context,index){
                    return Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Container(
                        width: (MediaQuery.of(context).size.width / names.length) - 16, // Ratio of width relative to array of names
    //Since 8 paddings are given from the right and left, I subtract 16.
                        decoration: BoxDecoration(
                          color: Colors.green,
                          borderRadius: BorderRadius.circular(8.0),
                        ),
                        child: Center(child: Text(names[index])),
                      ),
                    );
        
                  }),
                ),
              ),
            ),
            );
          }
        }
    

    正如我在评论行中提到的,我自己创建了一个名称数组。在“宽度”部分中,我使用 MediaQuery 指定了宽度与名称数组的比率,以便与每个屏幕兼容。好好工作。

    输出:

    在此输入图像描述

    • 1
  2. Best Answer
    Ahmad Ali
    2023-08-18T04:30:01+08:002023-08-18T04:30:01+08:00

    您可以将设备宽度存储在变量中,并将其除以名称列表的长度,并将其分配给文本的父容器,它将占用所有可用空间。

    @override
      Widget build(BuildContext context) {
        double deviceWidth = MediaQuery.of(context).size.width; //Total available width of device
        return Scaffold(
          body: Center(
            child: Container(
              height: 80,
              color: Colors.grey,
              child: ListView.builder(
                scrollDirection: Axis.horizontal,
                itemCount: names.length,
                itemBuilder: (context, index) {
                  return Padding(
                    padding: const EdgeInsets.all(8.0),
                    child: Container(
                      width: (deviceWidth / names.length) - 16, // 16 is subtracted to adjust the padding space 
                      decoration: BoxDecoration(
                        color: Colors.green,
                        borderRadius: BorderRadius.circular(8.0),
                      ),
                      child: Center(child: Text(names[index])),
                    ),
                  );
                },
              ),
            ),
          ),
        );
      }
    }
    

    在此输入图像描述

    • 1

相关问题

  • 如何修复 GoRouter.of(context).pop() 以便它导航到上一页?

  • 在 flutter 中使用 sliver appbar 时状态不会改变

  • 如何请求用户访问手机存储空间?

  • 如何保证代码按正确的顺序执行?扑

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    使用 <font color="#xxx"> 突出显示 html 中的代码

    • 2 个回答
  • Marko Smith

    为什么在传递 {} 时重载解析更喜欢 std::nullptr_t 而不是类?

    • 1 个回答
  • Marko Smith

    您可以使用花括号初始化列表作为(默认)模板参数吗?

    • 2 个回答
  • Marko Smith

    为什么列表推导式在内部创建一个函数?

    • 1 个回答
  • Marko Smith

    我正在尝试仅使用海龟随机和数学模块来制作吃豆人游戏

    • 1 个回答
  • Marko Smith

    java.lang.NoSuchMethodError: 'void org.openqa.selenium.remote.http.ClientConfig.<init>(java.net.URI, java.time.Duration, java.time.Duratio

    • 3 个回答
  • Marko Smith

    为什么 'char -> int' 是提升,而 'char -> Short' 是转换(但不是提升)?

    • 4 个回答
  • Marko Smith

    为什么库中不调用全局变量的构造函数?

    • 1 个回答
  • Marko Smith

    std::common_reference_with 在元组上的行为不一致。哪个是对的?

    • 1 个回答
  • Marko Smith

    C++17 中 std::byte 只能按位运算?

    • 1 个回答
  • Martin Hope
    fbrereto 为什么在传递 {} 时重载解析更喜欢 std::nullptr_t 而不是类? 2023-12-21 00:31:04 +0800 CST
  • Martin Hope
    比尔盖子 您可以使用花括号初始化列表作为(默认)模板参数吗? 2023-12-17 10:02:06 +0800 CST
  • Martin Hope
    Amir reza Riahi 为什么列表推导式在内部创建一个函数? 2023-11-16 20:53:19 +0800 CST
  • Martin Hope
    Michael A fmt 格式 %H:%M:%S 不带小数 2023-11-11 01:13:05 +0800 CST
  • Martin Hope
    God I Hate Python C++20 的 std::views::filter 未正确过滤视图 2023-08-27 18:40:35 +0800 CST
  • Martin Hope
    LiDa Cute 为什么 'char -> int' 是提升,而 'char -> Short' 是转换(但不是提升)? 2023-08-24 20:46:59 +0800 CST
  • Martin Hope
    jabaa 为什么库中不调用全局变量的构造函数? 2023-08-18 07:15:20 +0800 CST
  • Martin Hope
    Panagiotis Syskakis std::common_reference_with 在元组上的行为不一致。哪个是对的? 2023-08-17 21:24:06 +0800 CST
  • Martin Hope
    Alex Guteniev 为什么编译器在这里错过矢量化? 2023-08-17 18:58:07 +0800 CST
  • Martin Hope
    wimalopaan C++17 中 std::byte 只能按位运算? 2023-08-17 17:13:58 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve