颤动无法访问静态变量
flutter can't access static variable
我想在 flutter 中访问有状态小部件中的静态变量。
但它不起作用。
有人说这是私人小部件,我无法访问它。
那么如何在下面的代码中访问变量 isCollapsed
:
class BottomNavBar extends StatefulWidget {
final int activeTabIndex;
const BottomNavBar({Key? key, required this.activeTabIndex})
: super(key: key);
@override
_BottomNavBarState createState() => _BottomNavBarState();
}
class _BottomNavBarState extends State<BottomNavBar> {
static var isCollapsed = false;
@override
Widget build(BuildContext context) {
Scaffold(
body: SlidingUpPanel(
controller: _pc,
panelBuilder: (sc) {
if (isCollapsed == false) _pc.hide();
if (isCollapsed == true) _pc.show();
return Container(
child: Center(child: Text("Panel")),
);
},
body: Text("something");
), }
}
我想在另一个 class 中更改 isCollapsed,
单击图标时,isCollapsed 变为 true。
class _PlayerPreviewState extends State<PlayerPreview> {
@override
Widget build(BuildContext context) {
final String play = 'assets/icons/play.svg';
var pageWidth = MediaQuery.of(context).size.width;
return Padding(
padding: EdgeInsets.only(top: pageWidth * .04),
child: IconButton(
onPressed: () {
},
icon: SvgPicture.asset(play),
),
);}}
谁能帮帮我,我该怎么做?
是的,_BottomNavBarState
是私有的,因为它以下划线开头_
。如果你想让它成为 public,请从名称中删除 _
,它会像
@override
BottomNavBarState createState() => BottomNavBarState();
}
class BottomNavBarState extends State<BottomNavBar> {
static var isCollapsed = false;
并在任何地方使用 BottomNavBarState.isCollapsed
,但我更喜欢 state-management,而变量对状态有影响。
有关
的更多信息
我想在 flutter 中访问有状态小部件中的静态变量。
但它不起作用。
有人说这是私人小部件,我无法访问它。
那么如何在下面的代码中访问变量 isCollapsed
:
class BottomNavBar extends StatefulWidget {
final int activeTabIndex;
const BottomNavBar({Key? key, required this.activeTabIndex})
: super(key: key);
@override
_BottomNavBarState createState() => _BottomNavBarState();
}
class _BottomNavBarState extends State<BottomNavBar> {
static var isCollapsed = false;
@override
Widget build(BuildContext context) {
Scaffold(
body: SlidingUpPanel(
controller: _pc,
panelBuilder: (sc) {
if (isCollapsed == false) _pc.hide();
if (isCollapsed == true) _pc.show();
return Container(
child: Center(child: Text("Panel")),
);
},
body: Text("something");
), }
}
我想在另一个 class 中更改 isCollapsed, 单击图标时,isCollapsed 变为 true。
class _PlayerPreviewState extends State<PlayerPreview> {
@override
Widget build(BuildContext context) {
final String play = 'assets/icons/play.svg';
var pageWidth = MediaQuery.of(context).size.width;
return Padding(
padding: EdgeInsets.only(top: pageWidth * .04),
child: IconButton(
onPressed: () {
},
icon: SvgPicture.asset(play),
),
);}}
谁能帮帮我,我该怎么做?
是的,_BottomNavBarState
是私有的,因为它以下划线开头_
。如果你想让它成为 public,请从名称中删除 _
,它会像
@override
BottomNavBarState createState() => BottomNavBarState();
}
class BottomNavBarState extends State<BottomNavBar> {
static var isCollapsed = false;
并在任何地方使用 BottomNavBarState.isCollapsed
,但我更喜欢 state-management,而变量对状态有影响。
有关
的更多信息