flutter的按钮如何变为不可选中_关于flutter如何保存页面选择状态的问题

问题描述

当我点击语言切换按钮的时,跳转会跳转到首页,当从首页在进入到语言选择页面的时候,语言选择页面会重置,导致当前语言和语言选择页面对不上。

图片演示:

自己尝试过哪些方法

我尝试过 with AutomaticKeepAliveClientMixin bool get wantKeepAlive => true;来保存页面的状态,但是无效

我尝试过用IndexedStack,无效

我尝试过Offstage,无效

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

此代码为语言切换页面:

class Language extends StatefulWidget {

Language({

Key key

}): super(key: key);

static final String sName = "language";

// createState() => new LanguageState();

_LanguageState createState() => _LanguageState();

}

class _LanguageState extends State < Language > with AutomaticKeepAliveClientMixin {

var englishivisible = false; //控制中英文切换按钮的显示隐藏

var chinesevisible = true; //控制中英文切换按钮的显示隐藏

@override

bool get wantKeepAlive => true;

@override

Widget build(BuildContext context) {

// TODO: implement build

return Scaffold(

appBar: AppBar(

title: Text(Translations.of(context).text("language_setting"), style: TextStyle(color: Colors.grey[700]), ),

centerTitle: true,

backgroundColor: Colors.white,

),

body:

Column(

///主轴居中,即是竖直向居中

mainAxisAlignment: MainAxisAlignment.start,

///大小按照最小显示

mainAxisSize: MainAxisSize.min,

///横向也居中

crossAxisAlignment: CrossAxisAlignment.start,

children: < Widget > [

Padding(padding: EdgeInsets.only(top: 10.0), ),

new ListTile(

onTap: () {

applic.onLocaleChanged(new Locale('en', '')); //转换英文

Navigator.pushNamed(context, "home"); //回到首页

setState(() {

englishivisible = false;

chinesevisible = true;

});

},

title: new Text(

'English',

),

leading: new Icon(

Icons.format_align_left,

color: Color(0XFF599FB4)

),

trailing: new Icon(Icons.done, color: Color(chinesevisible ? 0XFF599FB4 : 0xffffff), ),

),

new Divider(),

new ListTile(

onTap: () {

applic.onLocaleChanged(new Locale('fr', '')); //转换成中文

Navigator.pushNamed(context, "home");

setState(() {

englishivisible = true;

chinesevisible = false;

});

},

title: new Text(

'简体中文(中国)',

),

leading: new Icon(

Icons.format_align_left,

color: Color(0XFF599FB4)

),

trailing: Icon(Icons.done, color: Color(englishivisible ? 0XFF599FB4 : 0xffffff), ),

),

new Divider(),

],

),

);

}

}

希望您能帮得到我,不胜感激

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值