- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我刚刚开始学习 flutter。我正在尝试一个简单的教程,它将显示两个骰子的面。当我点击 float 操作按钮时,它会随机化两个骰子上的数字。我更进一步将 FAB 分离到另一个文件中。当我尝试将 onPressed 事件从主文件传递到我的自定义 FAB 文件时,我的问题就开始了。
在我的 rollDice 方法中,我无法调用 setState,它提示无法从静态方法访问实例成员。不太确定如何从这里继续前进。
主要的飞镖
import 'package:flutter/material.dart';
import 'custom_floatBtn.dart';
import 'dart:math';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
final swatch = const {
50: const Color(0xff661f00),
100: const Color(0xff992e00),
200: const Color(0xffcc3d00),
300: const Color(0xffe64500),
400: const Color(0xffff4d00),
500: const Color(0xffff5e1a),
600: const Color(0xffff824d),
700: const Color(0xffffa680),
800: const Color(0xffffc9b3),
900: const Color(0xffffede6)
};
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: MaterialColor(0xffFF5722, swatch),
//primarySwatch: Colors.green,
),
home: MyHomePage(title: 'Dice Betting'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
static int leftDiceNumber = 1;
static int rightDiceNumber = 1;
static void rollDice() {
Random num = Random();
setState(() {
leftDiceNumber = num.nextInt(6) + 1;
rightDiceNumber = num.nextInt(6) + 1;
});
}
static String param = 'Roll';
static final customFloatBtn = new CustomFloatBtn(
butname: param,
onPressed: rollDice,
);
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
backgroundColor: Colors.black38,
body: Center(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Image.asset('dice$leftDiceNumber.png'),
)),
Expanded(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Image.asset('dice$rightDiceNumber.png'),
)),
],
),
),
floatingActionButton: customFloatBtn
// This trailing comma makes auto-formatting nicer for build
methods.
);
}
}
CustomFloatBtn 类
import 'package:flutter/material.dart';
class CustomFloatBtn extends StatelessWidget {
final String butname;
final GestureTapCallback onPressed;
CustomFloatBtn({this.butname, this.onPressed});
@override
Widget build(BuildContext context) {
return FloatingActionButton(
tooltip: 'Increment',
//child: Icon(Icons.add),
child: Text(butname),
onPressed: onPressed,
);
}
}
最佳答案
我不确定您为什么不使用这样的简单实现。从所有地方删除 static
。
floatingActionButton: CustomFloatBtn(
butname: param,
onPressed: rollDice,
),
更新:
void rollDice() { // remove static from here
Random num = Random();
setState(() {
leftDiceNumber = num.nextInt(6) + 1;
rightDiceNumber = num.nextInt(6) + 1;
});
}
String param = 'Roll'; // remove static from here
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: CustomFloatBtn( // use CustomFloatBtn here
butname: param,
onPressed: rollDice,
),
...
}
关于flutter - 将 FloatingActionButton 分离到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56616652/
如果我正常运行应用程序,应用程序运行良好,但当我尝试测试它时显示错误,这里是错误的完整日志。 java.lang.RuntimeException: android.view.InflateExcep
只是想澄清一个概念上的疑问。 float 操作按钮的 hide() 函数类似于 visibility.GONE 还是 visibility.INVISIBLE? 最佳答案 简而言之:是的。 以下是从设
我在以下布局文件 activity_register 中有一个 float 操作按钮:
我在 CoordinatorLayout 中使用 FloatingActionButton,但与正常行为不同,我想在到达底部时显示它,以便让用户看到更多数据。 为此,我在 Internet 上找到了该
我在使用 FloatingActionButton 时遇到了一些问题,它在模拟器上可以正常工作,但是当我安装到我的手机(Galaxy s4,Android V4.4.4)时它无法正常工作我附上了一些图
我想在 Android 中创建一个类似于 Gmail 收件箱的简单布局。项目列表和用于添加新项目的 FloatingActionButton。在 Android Studio 的设计选项卡中,按钮显示
您好,我正在尝试实现 makovkastar 的 [FloatingActionButton][1] 库。 (因为它是向后兼容的。它适用于单个 FAB,但是当添加 2 个按钮时,“列表”似乎只附加到一
我无法制作正确的按钮。如果我们为 CoordinatorLayout 设置 android: layout_height = "90dp",那么一切都会发生,但我希望它没有硬值。我可以这样做吗?
我正在使用 this library这对于实现带有自定义菜单和许多其他内容的 float 操作按钮来说非常棒。 但是在使用这个库时,我遇到了更改 FloatingActionMenu 中的 Float
我需要创建一个带有白色边框并填充纯色(蓝色或灰色)的 FAB。 xml 我尝试了 How to change android design support library FAB Button bo
我越来越熟悉新的 support.design 库,但我正面临 FloatingActionButton 的这个问题。我试图以编程方式隐藏它,但按钮始终可见。 我觉得 app:layout_ancho
我在 api 21+ 中使用 FloatingActionButton 它显示完全正常,但如果我在 api 20 中查看它- 那么它在后台有四行。 下面是我的FloatingActionButton的
我正在使用 FloatingActionButton 和 OnClick。我想显示 PopupMenu 并使用漂亮的动画(旋转 90 度)旋转相同的 FAB 按钮。 点击时,它应该自己动画: 我能够在
最近我从GitHub下载了一段代码,并同步到我的android studio。这样做时我遇到了很多错误和问题,并以某种方式修复了其中的大部分。但是,我现在遇到的最后一个问题是我的 android st
我正在使用 Android 支持 FloatingActionButton (FAB) 和 CoordinatorLayout,我想将 FAB 锚定到 CardView。 这是我的代码:
我正在尝试在我的应用程序中使用 float 操作按钮 (FAB)。但是,当我声明相同时,我得到了错误: android.support.design.widget.FloatingActionButt
我目前正在开发一个使用 FloatingActionButton 的 Android 应用程序。我想使用快速拨号来执行多个操作,如 this 中所述,旋转/跳出操作按钮。 Google 在 Andro
我找不到获得无边框 FAB 的方法。例如,当我尝试时: 我得到: 请注意 FAB 周围的边界。我已经尝试过 adjustViewBounds="true"和 android:background="
目前正在开发一个应用程序,我需要在 折叠工具栏 的右下角添加“共享”和“添加”按钮(视差效果)。 它可能隐藏在滚动中或可能位于 Actionbar 上。添加了我想要实现的图像。目前不知道如何执行此操作
我正在尝试创建一个带有如下图标的 FloatingActionButton:https://github.com/jd-alexander/LikeButton 如您所见,该按钮是动画,而不仅仅是两个
我是一名优秀的程序员,十分优秀!