Попытка сделать радио кнопки с помощью Streambuilder и Bloc во флаттере.но не работает - PullRequest
0 голосов
/ 16 декабря 2018

Я пытался создать радиокнопки с помощью Streambuilder и Bloc.

, поэтому я сделал streamcontroler и, когда щелкнули радиокнопки,

я сделал streamcontrl.add (значение) реализованным, но Streambuilder этого не сделалпрослушайте

этот поток.Я проверил неизменную стоимость радио.и

Пожалуйста, выясните, что с ним не так.

Это полный код.

import 'package:flutter/material.dart';
import 'dart:async';

void main(){
   runApp(new MaterialApp(
  home: new MyApp(),
 ));
 }


 class bloc {

  StreamController <int> ctrl = StreamController() ;
  get blocvalue => ctrl.stream;   
  void setvalue (value ) {
       ctrl.sink.add(value) ; }
 }

 class MyApp extends StatefulWidget {
  @override
  _State createState() => new _State();
  }

 class _State extends State<MyApp>{



 @override
  Widget build(BuildContext context) {
    return new Scaffold(
    appBar: new AppBar(
      title: new Text('Name here'),
    ),

    body: new Container(
      padding: new EdgeInsets.all(15.0),
      child: new Center(
      child: new Column(
        children: <Widget>[
          StreamBuilder(
              stream: bloc().blocvalue,
              initialData: 0,
              builder: (BuildContext context, AsyncSnapshot <int> snapshot) 
       {
                List<Widget> list = new List<Widget>();
                for(int i = 0; i < 3; i++){
                  list.add(new RadioListTile(
                    value: i,
                    groupValue: snapshot.data,
                    onChanged: bloc().setvalue,
                    activeColor: Colors.green,
                    controlAffinity: ListTileControlAffinity.trailing,
                    title: new Text('Item: ${i}'),
                    dense: true,
                    //    subtitle: new Text('sub title'),
                  ));

                }
                return Column(children: list,); })
         ],
        ),
      ),
     ),
    );
   }
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...