如何通过点击颤振中的文本启用复选框?

how to enable checkbox with tapping on text in flutter?

我有一个复选框,当用户点击文本时,我想要的复选框旁边有一个文本,复选框是 enable/disable,我该怎么做?

  Widget buildRememberCb() {
    return Container(
      height: 200,
      child: Row(
        textDirection: TextDirection.rtl,
        children: [
          Theme(
            data: ThemeData(unselectedWidgetColor: Colors.white),
            child: Checkbox(
              value: isRememberMe,
              checkColor: Color(0xfff44336),
              activeColor: Colors.white,
              onChanged: (value) {
                setState(() {
                  isRememberMe = value!;
                });
              },
            ),
          ),
          Text(
            "Remember Me",
            style: TextStyle(
                fontWeight: FontWeight.w900, fontSize: 18, color: Colors.white),
          ),
        ],
      ),
    );
  }

GestureDetector包裹Text并改变onTap,

isRememberMe的值
  Widget buildRememberCb() {
    return Container(
      height: 200,
      child: Row(
        textDirection: TextDirection.rtl,
        children: [
          Theme(
            data: ThemeData(unselectedWidgetColor: Colors.white),
            child: Checkbox(
              value: isRememberMe,
              checkColor: Color(0xfff44336),
              activeColor: Colors.white,
              onChanged: (value) {
                setState(() {
                  isRememberMe = value!;
                });
              },
            ),
          ),
          GestureDetector(
            onTap: (){
              setState((){
                isRememberMe = isRememberMe ? false : true;
              });
            },
            child: Text(
              "Remember Me",
              style: TextStyle(
                fontWeight: FontWeight.w900, fontSize: 18, color: Colors.white),
            ),
          ),
        ],
      ),
    );
  }

如果你想要墨水飞溅,你可以用 InkWell 替换 GestureDetector 但更好的方法是只使用 TextButton,

TextButton(
  onPressed: () {
    setState((){
      isRememberMe = isRememberMe ? false : true;
     });
  },
  child: Text(
    "Remember Me",
    style: TextStyle(
      fontWeight: FontWeight.w900, 
      fontSize: 18, 
      color: Colors.white,
    ),
  ),
),