【问题标题】:Why are the buttons not switching?为什么按钮不切换?
【发布时间】:2022-08-13 00:17:07
【问题描述】:

我有三个按钮。我可以选择(激活)的最大值只有一个按钮。切换按钮时,我已经激活应该是true,而不是激活-false。我在 SharedPreferences 中为每个按钮写入这些值,存储 true 或 false。当我打开页面时,我会获取有关这些按钮的数据,并以紫色显示我选择并保存的按钮。但是我遇到了一个错误,我无法切换到另一个按钮,我总是选择一个并且它没有改变。可能是什么问题呢?

enum VoltageMode {
  ac,
  dc,
  all,
}


class _FilterDialogState extends State<FilterDialog> {
  VoltageMode? selectedMode;

  @override
  Widget build(BuildContext context) {
    return BlocBuilder<MapPreferencesCubit, MapPreferencesState>(
      builder: (context, statePreferences) {
        final MapPreferencesCubit mapPreferencesCubit =
            BlocProvider.of<MapPreferencesCubit>(context);
        if (statePreferences is MapPreferencesInitial) {
          mapPreferencesCubit.getPreferences();
        }

        if (statePreferences is MapPreferencesLoaded) {
          return BlocBuilder<MapfilterCubit, MapFilterState>(
            builder: (context, stateFilter) {
              final MapfilterCubit mapFilterCubit =
                  BlocProvider.of<MapfilterCubit>(context);
              if (stateFilter is MapFilterInitial) {
                mapFilterCubit.getFilter();
              }

              if (stateFilter is MapFilterLoaded) {
                if (stateFilter.mapFilter.voltagePowerAC) selectedMode = VoltageMode.ac;
                if (stateFilter.mapFilter.voltagePowerDC) selectedMode = VoltageMode.dc;
                if (stateFilter.mapFilter.voltagePowerAll) selectedMode = VoltageMode.all;

                    return Padding(
                              padding:
                                  const EdgeInsets.symmetric(horizontal: 21),
                              child: Row(
                                mainAxisAlignment: MainAxisAlignment.center,
                                children: [
                                  GestureDetector(
                                    onTap: () => setState(() {
                                      selectedMode = VoltageMode.ac;
                                    }),
                                    child: _buttonVoltage(
                                        \'AC\', selectedMode == VoltageMode.ac),
                                  ),
                                  const SizedBox(width: 16),
                                  GestureDetector(
                                    onTap: () => setState(() {
                                      selectedMode = VoltageMode.dc;
                                    }),
                                    child: _buttonVoltage(
                                        \'DC\', selectedMode == VoltageMode.dc),
                                  ),
                                  const SizedBox(width: 16),
                                  GestureDetector(
                                    onTap: () => setState(() {
                                      selectedMode = VoltageMode.all;
                                    }),
                                    child: _buttonVoltage(
                                        \'All\', selectedMode == VoltageMode.all),
                                  ),
                                ],
                              ),
                            ),
                            Padding(
                          padding:
                              const EdgeInsets.symmetric(horizontal: 21),
                          child: DefaultButtonGlow(
                              text: \'Done\',
                              onPressed: () {
                                mapFilterCubit
                                    .setFilter(
                                  MapFilter(
                                    voltagePowerAC:
                                        selectedMode == VoltageMode.ac,
                                    voltagePowerDC:
                                        selectedMode == VoltageMode.dc,
                                    voltagePowerAll:
                                        selectedMode == VoltageMode.all,
         
                                  ),
                                )
                              },
                        ),
                      ],
                    ),
                  ),
...

  Widget _buttonVoltage(String nameButton, bool isActive) => Container(
        padding: const EdgeInsets.symmetric(vertical: 11),
        height: 40,
        width: 87,
        decoration: BoxDecoration(
          color: isActive
              ? constants.Colors.purpleMain
              : constants.Colors.white.withOpacity(0.15),
          borderRadius: BorderRadius.circular(20),
          border: Border.all(
            color: isActive ? Colors.transparent : constants.Colors.greyDark,
          ),
          boxShadow: [
            BoxShadow(
                color: isActive
                    ? constants.Colors.purpleMain.withOpacity(0.34)
                    : Colors.transparent,
                blurRadius: 10,
                spreadRadius: 2,
                offset: const Offset(0.0, 1.0)),
          ],
        ),
        alignment: Alignment.center,
        child:
            Text(nameButton, style: constants.Styles.smallBoldTextStyleWhite),
      );

    标签: flutter dart


    【解决方案1】:

    现在是印度最好的 10 台索尼相机,相机是一种以照片的形式记录视觉图像的设备,作为相机的电影或视频信号这个印度 10 台最佳索尼相机的列表,所以请访问这个网站并挑选最适合你的相机并购买所以快点这个网站访问或更多结果为印度 10 最好的索尼相机。

    在短反相机的单镜头中,因此摄影师通过最终的前相机镜头看到场景,这也避免了问题。

    第二天实际上发生的视差或观看镜头反光相机

    另一方面,从这里开始制作了几种格式,包括胶片

    由于第四个原因,几乎所有数码单反相机都在光路中使用来引导

    通过一个同样重要的屏幕,至少到最后一次,从镜头中第三次发光

    这些相机的聚焦是最后一个,但现在是使用磨砂玻璃

    屏幕在焦点长度处。因为也不是镜头设计而已

    最终允许在该国的玻璃板稍后在同时在黑暗中的片材胶片仍然滑动到下一个

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多