草庐IT

flutter - Flutter 中带有文本和单选按钮的动态 ListView

coder 2023-07-22 原文

无法在 flutter 中创建带有文本和单选按钮的动态 ListView

当我动态创建时(从服务中获取数据并将数据与文本绑定(bind))带有文本和单选按钮的 ListView 当我选择单选按钮时它没有显示已选择(指示符);

import 'package:flutter/material.dart';
class DemoTest extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
    theme: new ThemeData(
     primarySwatch: Colors.blue,
                   ),
      home: new DemoTestStatesFull(),
    );}}
class DemoTestStatesFull extends StatefulWidget {
  DemoTestState createState() => DemoTestState();
}

class DemoTestState extends State {
  final List<String> floor_list = [
    "floor1",
    "floor2",
    "floor3",
    "floor4",
    "floor5",
    "floor6",
  ];
  int _selectedIndex =0;
  int  _value2=0;
  Container datacontainer=new Container();

  _onSelected(int index) {
    setState(() => _selectedIndex = index);
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Dynamic View Example'),
      ),
      body: Stack(
          children: <Widget>[
            new RaisedButton(
                child: Text("Fetch Data"),
                onPressed:() {setState(() {
                    datacontainer= DisplayData(floor_list);//  Let Suppose  Here  getting data from web service after json parsing  string list is
                    print("Button is clicked");
                  });}),
            datacontainer,
     ],));}
  Widget  DisplayData(List<String>floorlist)
  {
    datacontainer   =new Container(
      height: 300.00,
      width: 400.00,
      child:  ListView.builder(
          itemCount: (floorlist.length),
          itemBuilder: (context, i) {
            return new InkResponse(
                enableFeedback: true,
                onTap: ()
                {
                  print(" Card index is  $i");
                },
                child:new Card(
                    color: _selectedIndex != null && _selectedIndex == i ? Colors.greenAccent : Colors.white,
                    elevation: 3.0,
                    margin: EdgeInsets.fromLTRB(5.00, 0.00, 5.00,5.00),
                    child: Row(
                        mainAxisSize: MainAxisSize.min,
                        crossAxisAlignment: CrossAxisAlignment.center,
                        children: <Widget>[
                          Padding(padding: const EdgeInsets.fromLTRB(20.00,0.0, 0.0,0.0)),
                          Padding(
                            padding: const EdgeInsets.all(10.0),
                            child: Text(floorlist[i], style: new 
TextStyle(fontSize: 20.0,
                                fontWeight: FontWeight.bold)),
                          ),
                          Padding(padding: const EdgeInsets.fromLTRB(70.00, 
                        0.0, 0.0,0.0)),
                          Padding(
                            padding: const EdgeInsets.all(10.0),
                            child: Text(floorlist[i], style: new 
                             TextStyle(fontSize: 20.0,
                                fontWeight: FontWeight.bold)),
                          ),
                          new Radio(
                            value: i,
                            groupValue: _value2,
                            onChanged:(int value)
                            {
                              setState(() {
                                _value2=value;
                                print("Radio index is  $value");
                             });}),])));}
      ),);return datacontainer;}}

只是我想创建带有文本的动态 ListView 并选择可用的单选按钮

最佳答案

首先,您可以轻松地对没有单选按钮的行使用 gestureDetector 并且 将单选按钮放在尾部,listTile 就像列表的一行,标题和尾部作为图 block 内的相对位置(listTile 是您想要的包含文本和单选按钮的列表行)。 ps:GestureDetector 是一个小部件,因此您可以返回它而不是行的左侧。

return ListTile(
          leading:GestureDetector(
                    child: //add the text here,
                    onTap: () { 
                      //here handle the onclick for text

                     } ,
           ) ,
          trailing://here add the radio button with onchanged normally,

                  );

希望这能回答您的问题。

关于flutter - Flutter 中带有文本和单选按钮的动态 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55413977/

有关flutter - Flutter 中带有文本和单选按钮的动态 ListView的更多相关文章

  1. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  2. ruby - 在 Ruby 中动态创建数组 - 2

    有没有办法在Ruby中动态创建数组?例如,假设我想遍历用户输入的书籍数组:books=gets.chomp用户输入:"TheGreatGatsby,CrimeandPunishment,Dracula,Fahrenheit451,PrideandPrejudice,SenseandSensibility,Slaughterhouse-Five,TheAdventuresofHuckleberryFinn"我把它变成一个数组:books_array=books.split(",")现在,对于用户输入的每一本书,我想用Ruby创建一个数组。伪代码来做到这一点:x=0books_array.

  3. ruby - 是否可以将 IRB 提示配置为动态更改? - 2

    我想在IRB中浏览文件系统并让提示更改以反射(reflect)当前工作目录,但我不知道如何在每个命令后进行提示更新。最终,我想在日常工作中更多地使用IRB,让bash溜走。我在我的.irbrc中试过这个:require'fileutils'includeFileUtilsIRB.conf[:PROMPT][:CUSTOM]={:PROMPT_N=>"\e[1m:\e[m",:PROMPT_I=>"\e[1m#{pwd}>\e[m",:PROMPT_S=>"FOO",:PROMPT_C=>"\e[1m#{pwd}>\e[m",:RETURN=>""}IRB.conf[:PROMPT_MO

  4. ruby-on-rails - Rails 单选按钮 - 模型中多列的一种选择 - 2

    我希望用户从一个模型的三个选项中选择一个。即我有一个模型视频,可以被评为正面/负面/未知目前我有三列bool值(pos/neg/unknown)。这是处理这种情况的最佳方式吗?为此,表单应该是什么样的?目前我有类似的东西但显然它允许多项选择,而我试图将它限制为只有一个..怎么办? 最佳答案 如果要使用字符串列,让我们说rating。然后在你的表单中:#...#...它只允许一个选择编辑完全相同但使用radio_button_tag: 关于ruby-on-rails-Rails单选按钮-模

  5. ruby-on-rails - rspec - 我怎样才能让 "pendings"有我的文本而不仅仅是 "No reason given" - 2

    我有这个代码:context"Visitingtheusers#indexpage."dobefore(:each){visitusers_path}subject{page}pending('iii'){shouldhave_no_css('table#users')}pending{shouldhavecontent('Youhavereachedthispageduetoapermissionic错误')}它会导致几个待处理,例如ManagingUsersGivenapractitionerloggedin.Visitingtheusers#indexpage.#Noreason

  6. ruby - 如何为 pbcopy 生成富文本链接 - 2

    我一直在玩一个脚本,它在Chrome中获取选定的文本并在Google中查找它,提供四个最佳选择,然后粘贴相关链接。它以不同的格式粘贴,具体取决于当前在Chrome中打开的页面-DokuWiki打开的DokuWiki格式,普通网站的HTML,我想要我的WordPress所见即所得编辑器的富文本。我尝试使用pbpaste-Preferrtf来查看没有其他样式的富文本链接在粘贴板上的样子,但它仍然输出纯文本。在文本编辑中保存文件并进行试验后,我想出了以下内容text=%q|{\rtf1{\field{\*\fldinst{HYPERLINK"URL"}}{\fldrsltTEXT}}}|te

  7. ruby-on-rails - carrierwave:在序列化动态属性上安装 uploader - 2

    首先,我使用的是rails3.1.3和来自master的carrierwavegithub仓库的分支。我使用after_init钩子(Hook)来确定基于属性的字段页面模型实例并为这些字段定义属性访问器将值存储在序列化哈希中(希望它清楚我是什么谈论)。这是我正在做的事情的精简版:classPage省略mount_uploader命令让我可以访问我想要的属性。但是当我安装uploader时出现错误消息说“nil类的未定义新方法”我在源代码中读到有方法read_uploader和扩展模块中的write_uploader。我如何必须覆盖这些来制作mount_uploader命令使用我的“虚拟

  8. ruby - 在 Ruby 中动态生成多维数组 - 2

    我正在尝试动态构建一个多维数组。我想要的基本上是这样的(为简单起见写出来):b=0test=[[]]test[b]这给了我错误:NoMethodError:undefinedmethod`test=[[],[],[]]而且它工作正常,但在我的实际使用中,我不会事先知道需要多少个数组。有一个更好的方法吗?谢谢 最佳答案 不需要像您正在使用的索引变量。只需将每个数组附加到您的test数组:irb>test=[]=>[]irb>test[["a","b","c"]]irb>test[["a","b","c"],["d","e","f"]]

  9. ruby-on-rails - 使用 gmaps4rails 动态加载谷歌地图标记 - 2

    如何只加载map边界内的标记gmaps4rails?当然,在平移和/或缩放后加载新的。与此直接相关的是,如何获取map的当前边界和缩放级别? 最佳答案 我是这样做的,我只在用户完成平移或缩放后替换标记,如果您需要不同的行为,请使用不同的事件监听器:在你看来(index.html.erb):{"zoom"=>15,"auto_adjust"=>false,"detect_location"=>true,"center_on_user"=>true}},false,true)%>在View的底部添加:functiongmaps4rail

  10. ruby-on-rails - 尝试打开 .gitignore 以在文本编辑器中对其进行编辑,但在 OS X Mountain Lion 上找不到文件位置 - 2

    我使用“newapp_name”创建了一个新的Rails应用程序,我正在尝试编辑.gitignore文件,但在我的应用程序文件夹中找不到它。我在哪里可以找到它?我安装了Git。 最佳答案 .gitignore位于项目的root中,而不是app子目录中。首先打开终端并进入您的目录。您需要使用ls-a来显示stash文件。然后使用打开.gitignore 关于ruby-on-rails-尝试打开.gitignore以在文本编辑器中对其进行编辑,但在OSXMountainLion上找不到文件位

随机推荐