gpt4 book ai didi

flutter - 如何在 ListView.builder 中使用 RadioListTile?

转载 作者:IT王子 更新时间:2023-10-29 07:12:39 31 4
gpt4 key购买 nike

我正在尝试制作一个可选择的 ListView 。

我选择了 RadioListTile ,但它不需要与 Radios 一起使用,我会很高兴 ListTile 的背景颜色变化> 点击项目。所以在我当前的代码中,我有 RadioListTiles,但它不会在点击时检查,我认为它可以检查多个,因为它在 ListView.builder,但我不知道,因为我是 Flutter 的新手,而且它不起作用。

代码如下:

ListView.builder(
scrollDirection: Axis.vertical,
itemCount: items.length,
itemBuilder: (context, index) {
return RadioListTile<LoadList>(
selected: isSelected,
groupValue: radiolist,
value: items[index],
onChanged: (LoadList value) {
radiolist.GetHours(value.hours);
print("CurrentSelected $index");
setState(() {
isSelected = true;
});
},
title: new Text(index),
);
},
),

最佳答案

radio在flutter中其实很简单。基本上,它们是一个项目列表,每个项目都有一个值,并且有一个共享的选定值。状态维护共享的选定值。

基本上,您需要做的就是跟踪所选值并在按下列表项时更改它。对于每个项目,您检查共享的选定值是否等于该项目的值。

RadioListItem 只是通过为您完成相等部分来稍微帮助一下。这应该可以满足您的要求。

import 'package:flutter/material.dart';

main() => runApp(MyApp());

class MyApp extends StatefulWidget {
@override
MyAppState createState() {
return new MyAppState();
}
}

class MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: RadioListBuilder(
num: 20,
),
),
);
}
}

class RadioListBuilder extends StatefulWidget {
final int num;

const RadioListBuilder({Key key, this.num}) : super(key: key);

@override
RadioListBuilderState createState() {
return RadioListBuilderState();
}
}

class RadioListBuilderState extends State<RadioListBuilder> {
int value;

@override
Widget build(BuildContext context) {
return ListView.builder(
itemBuilder: (context, index) {
return RadioListTile(
value: index,
groupValue: value,
onChanged: (ind) => setState(() => value = ind),
title: Text("Number $index"),
);
},
itemCount: widget.num,
);
}
}

关于flutter - 如何在 ListView.builder 中使用 RadioListTile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54299235/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com