小编Gha*_*ebl的帖子

如何在onPressed()中动态更改凸起按钮的背景颜色

我有一个凸起按钮列表,我希望所选按钮的背景颜色在其 onPressed() 中更改

我尝试更改 setState 中的颜色,但它没有做任何事情。

这是生成按钮列表的函数

List<Widget> _makeZoneList(List<Zone> zones) {
    List<Widget>Buttons = new List();
    for (int i = 0; i < zones.length; i++) {
      Buttons.add(RaisedButton(
        color: zones[i].isSelected ? AppColors.primaryColor : AppColors.white,
        onPressed: () {
          setState(() {
            if (zones[i].isSelected){
              zones[i].isSelected = false;
            }
            else{
              zones[i].isSelected = true;
            }
            print(zones[i].isSelected.toString());
          });
        },
        child: Text(zones.elementAt(i).text)
      ));
    }
    return Buttons;
  }
Run Code Online (Sandbox Code Playgroud)

这是我调用函数的地方

Widget _zoneBody() {
    return Padding(
        padding: EdgeInsets.all(32),
        child: StreamBuilder<List<Zone>>(
            stream: GetterBloc.zonesStream,
            builder: (context, snapshot) {
              if (snapshot.connectionState == ConnectionState.waiting) {
                return …
Run Code Online (Sandbox Code Playgroud)

setstate flutter flutter-sliver flutter-layout

13
推荐指数
1
解决办法
5万
查看次数

不仅在颤动中单击文本字段时,如何始终在文本字段中显示提示?

登录画面

我有一个自定义文本字段,但如图所示,底部文本字段看起来如此模糊和空白,即使该字段未聚焦,我也希望保持提示显示,我如何在颤动中实现这一点?

这是我的小部件代码:

 Container(
                    margin: EdgeInsets.all(20),
                    child: TextFormField(
                      autofocus: true,
                      textAlign: TextAlign.right,
                      decoration: InputDecoration(
                          enabledBorder: const OutlineInputBorder(
                            borderSide: const BorderSide(color: Color(0xff0E9447), width: 2.0),
                          ),
                          focusedBorder: const OutlineInputBorder(
                            borderSide: const BorderSide(color: Color(0xff0E9447), width: 2.0),
                          ),
                          hintText: AppStrings.email,
                          labelText: AppStrings.email,
                          alignLabelWithHint: true,

                          hintStyle: TextStyle(color: AppColors.primaryColorLight),
                          ),
                    ),
                  ),


Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout

9
推荐指数
3
解决办法
1万
查看次数