при загрузке изображения или моей DropdownButton мои входы пусты - PullRequest
0 голосов
/ 10 июля 2020

как я могу заставить setState просто обновлять мне поле и не перерисовывать выбранный виджет, а не весь экран

Future getImage(ImageSource tipo) async {
    final pickedFile = await picker.getImage(source: tipo, imageQuality: 40);
    setState(() {

в этой строке он обновляется, есть только способ обновить sh только изображение

image = File(pickedFile.path);
    });
  }

  @override
  Widget build(BuildContext context) {
    UserBloc userBloc = BlocProvider.of<UserBloc>(context);

final _controllerTitleTienda = TextEditingController();
final _controllerDescriptionTienda = TextEditingController();

final nombrefinal = _controllerTitleTienda.text;

return Scaffold(
  body: Stack(
    children: <Widget>[
      GradientBack(
        height: 300.0,
      ),
      Row(
        //App Bar
        children: <Widget>[
          Container(
            padding: EdgeInsets.only(top: 25.0, left: 5.0),
            child: SizedBox(
              height: 45.0,
              width: 45.0,
              child: IconButton(
                  icon: Icon(
                    Icons.keyboard_arrow_left,
                    color: Colors.white,
                    size: 45,
                  ),
                  onPressed: () {
                    Navigator.pop(context);
                  }),
            ),
          ),
          Flexible(
              child: Container(
            padding: EdgeInsets.only(top: 45.0, left: 20.0, right: 10.0),
            child: TitleHeader(title: "Añadir una Tienda"),
          ))
        ],
      ),
      Container(

код, в котором я выбираю изображение, нажимая один из двух значков, если галерея или камера

margin: EdgeInsets.only(top: 120.0, bottom: 20.0),
            child: ListView(
              children: <Widget>[
                Container(
                  alignment: Alignment.center,
                  child: CardAddImageWithFabIcon(
                    image: image == null
                        ? AssetImage("assets/img/no-image.png")
                        : FileImage(image),
                    iconData: Icons.camera_alt,
                    iconData2: Icons.image,
                    onPressedFabIcon: () {
                      getImage(ImageSource.camera);
                    },
                    onPressedFabIcon2: () {
                      getImage(ImageSource.gallery);
                    },
                    width: 350.0,
                    height: 250.0,
                    left: 0.0,
                    //right: 40.0,
                  ),
                ),
                Container(
                  padding: EdgeInsets.only(right: 20.0, left: 20.0),
                  child: Dropdwntext(),

Я вызываю виджет, содержащий DropdownButton, который также возвращает пустую строку моих входов

), //Foto
>                 Container(
>                   //TextField Title
>                   margin: EdgeInsets.only(top: 20.0, bottom: 20.0),
>                   child: TextInput(
>                     hintText: "Nombre",
>                     inputType: null,
>                     maxLines: 1,
 

, где я получаю значение, но при вводе изображения или DropdownButton, поскольку у них есть setState

controller: _controllerTitleTienda,),),

            TextInput(
              //Description
              hintText: "Descripcion",
              inputType: TextInputType.multiline,
              maxLines: 4,

То же самое происходит через setState. Я получаю значение, но при вводе изображения или DropdownButton, поскольку у них есть setState и они перерисовывают виджет

controller: _controllerDescriptionTienda,
                ),
...