有没有办法轻松更改 ipywidgets 模块中的按钮名称?我正在使用装饰器,但在文档中找不到如何将名称更改为“运行交互”以外的名称。我相信我需要使用装饰器,因为我的函数需要按需运行并且依赖于来自不同小部件的多个输入,但我也愿意采用其他方式这样做。
import ipywidgets as widgets
from IPython.display import display
@widgets.interact_manual(number1 = widgets.Dropdown(
options=[1,2],
description='select a number'),
number2 = widgets.Dropdown(
options=[3,4],
description='select another number'))
def add_numbers(number1,number2):
return number1+number2
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个周视图,就像在谷歌日历中一样。我想显示一个时间表,其中事件在个别时间开始和结束(例如 9:34、17:11),以及它们应该在日历中显示的确切时间。所以没有四舍五入到整小时,因为我目前使用表格小部件实现了它。
实现这种观点的最佳方法是什么。我不知道从哪里开始。水平滚动本身并不是那么重要。但垂直的一个是我的问题。如何将这些事件小部件放置在可滚动列表中的特定位置?
我很欣赏每一种答案。这对我很有帮助。
我正在构建一个演示应用程序来使用本地化字符串进行测试。我收到以下错误:
I/flutter (21588):在构建 MainApp(dirty) 时抛出了以下 NoSuchMethodError:I/flutter (21588):getter 'title' 在 null 上被调用。I/flutter (21588):接收者:null I/flutter (21588):尝试调用:title
我不确定为什么会收到此错误。我遵循了颤振文档上的指示。
我有以下本地化类:
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'dart:async';
import 'package:bet_master/l10n/messages_all.dart';
class AppLocalizations {
static Future<AppLocalizations> load(Locale locale) {
final String name =
locale.countryCode.isEmpty ? locale.languageCode : locale.toString();
final localeName = Intl.canonicalizedLocale(name);
return initializeMessages(localeName).then((bool _) {
Intl.defaultLocale = localeName;
return AppLocalizations();
});
}
static AppLocalizations of(BuildContext context) {
return Localizations.of<AppLocalizations>(context, AppLocalizations);
}
String get title {
return Intl.message(
'Bet Master',
name: 'title',
desc: 'App Title'
);
} …Run Code Online (Sandbox Code Playgroud) 我有两个可扩展的按钮排成一行,占据了所有屏幕宽度。在左键单击时,我希望左键占据整个屏幕宽度,而右键则通过右侧显示消失在屏幕之外。这是我迄今为止取得的成就:
正如你所注意到的,当没有足够的空间来渲染它时,右边的按钮会在最后被压扁。我只是想让它继续移出屏幕而不改变它的宽度。我可以通过为按钮设置一行文本来实现这一点,但我希望该解决方案通常适用于所有小部件(看起来右边有足够的空间来渲染它)。
当前解决方案:
import 'package:flutter/material.dart';
void main() => runApp(TestAnimation());
class TestAnimation extends StatefulWidget {
@override
_TestAnimationState createState() => _TestAnimationState();
}
class _TestAnimationState extends State<TestAnimation> with SingleTickerProviderStateMixin {
AnimationController _animationController;
Animation _animation;
@override
void initState() {
super.initState();
_animationController = AnimationController(duration: Duration(seconds: 2), vsync: this);
_animation = IntTween(begin: 100, end: 0).animate(_animationController);
_animation.addListener(() => setState(() {}));
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: Row(
children: <Widget>[
Expanded(
flex: 100,
child: OutlineButton(
child: Text("Left"),
onPressed: () {
if …Run Code Online (Sandbox Code Playgroud) 基本上我正在构建一个列表视图。所以我正在使用卡片,我想要实现的是在卡片中我想划分一个部分来为列着色,另外一个部分我想写一个我希望它居中的文本,但我尝试了很多选项不能达到。
我注意到我的颜色没有完全覆盖它外面有一些白色元素。以下是我为实现它所做的工作的完整代码。
我想解决的问题如下
1) To make the color column look clean and neat as the image above because now I tried to adjust its height slight smaller than the card height which is 35
2) The text to be centered
3) The gesture to detect the whole of the text column
4) I have other design where it might have 3 or more column and how to build a separator
5) I have set the card width: 30.0, …Run Code Online (Sandbox Code Playgroud) 我有一个小部件,它需要一个代表允许在屏幕上显示的页面的数字。如果设备较弱,bool则可以传递覆盖初始值的参数。但是,由于所有值都是最终值,因此我必须在设置值之前在构造函数中对其进行评估。
class _A extends StatefullWidget{
_A(this.limitPages,
this.pagesToDisplay: limitPages ? 10 : pagesToDisplay,
)
final int pagesToDisplay;
final bool limitPages;
}
Run Code Online (Sandbox Code Playgroud)
我可以在初始值设定项列表中声明它,但随后我无法为pagesToDisplay.
class _A extends StatefullWidget{
_A(this.limitPages)
:this.pagesToDisplay: limitPages ? 10 : pagesToDisplay
final int pagesToDisplay;
final bool limitPages;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在构造函数设置最终值之前/之前断言语句?
查看此代码 - 获取数据并显示在列表中的小部件:
class _MyEventsFragmentState extends State <MyEventsFragment>{
var events;
@override
initState(){
super.initState();
events = fetchEvents(true);
}
@override
Widget build(BuildContext context) {
return new Center(
child: FutureBuilder<EventsResponse>(
future: events,
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
if (snapshot.hasError) {
helpers.logout(context, Strings.msg_session_expired);
return CircularProgressIndicator();
}
return new Container(color: Colors.white,
child: new ListControl().build(snapshot));
}
return CircularProgressIndicator();
},
)
);
}
}
Run Code Online (Sandbox Code Playgroud)
fetchEvent方法有参数来指示我需要获取哪些事件。如果设置为 true, - 我的事件,如果设置为 false - 返回所有事件。上面的代码加载我的事件并fetchEvents在initState覆盖内部调用以避免不必要的数据重新加载。
为了获取所有事件,我定义了另一个类:
class EventsFragment extends StatefulWidget {
@override …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的颤振中实现一个时间选择器,它显示如下图所示的时间。
虽然我能够像这样格式化时间,但问题是它在小部件初始化时不显示当前时间。我试过用这个。在这里看到我的代码。
TimeOfDay _currentTime = new TimeOfDay.now();
String timeText = 'Set A Time';
Future<Null> selectTime(BuildContext context) async {
TimeOfDay selectedTime = await showTimePicker(
context: context,
initialTime: _currentTime,
);
MaterialLocalizations localizations = MaterialLocalizations.of(context);
String formattedTime = localizations.formatTimeOfDay(selectedTime,
alwaysUse24HourFormat: false);
if (formattedTime != null) {
setState(() {
timeText = formattedTime;
});
}
};
Run Code Online (Sandbox Code Playgroud)
小部件日期选择器
class DatePicker extends StatelessWidget {
DatePicker({
this.formatedDate,
this.selectedDate,
});
final String formatedDate;
final Function selectedDate;
@override
Widget build(BuildContext context) {
return FlatButton(
padding: EdgeInsets.only(top: 30.0, bottom: 10.0),
child: …Run Code Online (Sandbox Code Playgroud) 我有一个带有 LinkedHashMap 成员的 StatefulWidget 小部件,如下所示:
LinkedHashMap _items = new LinkedHashMap<String, List<dynamic>>();
Run Code Online (Sandbox Code Playgroud)
现在我需要过滤List<dynamic>Map 项目中的项目。
我使用此代码进行过滤:
function filter(_items) {
return _items.map((day, items) {
return new MapEntry(day, items.where((i) {
return i.stringProperty.contains(widget.filter);
}).toList());
});
}
Run Code Online (Sandbox Code Playgroud)
但我得到了这个主题的错误
类型 '(dynamic) => dynamic' 不是 'test' 类型 '(dynamic) => bool' 的子类型
我正在尝试创建一个包含 60 个日期的列表,每个日期从当前日期开始增加一天。但它不起作用,它只是停留在当前日期。
我的代码:
import 'package:flutter/material.dart';
class UpComingPage extends StatefulWidget {
UpComingPage({Key key}) : super(key: key);
@override
_UpComingPageState createState() => _UpComingPageState();
}
class _UpComingPageState extends State<UpComingPage> {
@override
Widget build(BuildContext context) {
final items = List<DateTime>.generate(60, (i) {
DateTime date = DateTime.utc(
DateTime.now().year,
DateTime.now().month,
DateTime.now().day,
);
date.add(Duration(days: i));
return date;
});
return CustomScrollView(
slivers: <Widget>[
SliverAppBar(
title: Text('Title'),
centerTitle: true,
),
SliverList(
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
return ListTile(
title: Text('${items[index]}'),
);
},
childCount: items.length,
),
),
], …Run Code Online (Sandbox Code Playgroud) widget ×10
flutter ×9
dart ×6
animation ×1
calendar ×1
constructor ×1
ipywidgets ×1
localization ×1
stateful ×1