您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
144 行
5.0 KiB
144 行
5.0 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using uiwidgets;
|
|
using Unity.UIWidgets.cupertino;
|
|
using Unity.UIWidgets.engine;
|
|
using Unity.UIWidgets.painting;
|
|
using Unity.UIWidgets.rendering;
|
|
using Unity.UIWidgets.ui;
|
|
using Unity.UIWidgets.widgets;
|
|
using UnityEngine;
|
|
using Color = Unity.UIWidgets.ui.Color;
|
|
using Text = Unity.UIWidgets.widgets.Text;
|
|
using ui_ = Unity.UIWidgets.widgets.ui_;
|
|
using TextStyle = Unity.UIWidgets.painting.TextStyle;
|
|
|
|
namespace UIWidgetsSample
|
|
{
|
|
|
|
|
|
public class DateAndTimePicker : UIWidgetsPanel
|
|
{
|
|
protected void OnEnable()
|
|
{
|
|
base.OnEnable();
|
|
}
|
|
|
|
protected override void main()
|
|
{
|
|
ui_.runApp(new MyApp());
|
|
}
|
|
|
|
class MyApp : StatelessWidget
|
|
{
|
|
public override Widget build(BuildContext context)
|
|
{
|
|
return new CupertinoApp(
|
|
home: new DateAndTimePickerWidget()
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
public class DateAndTimePickerWidget : StatefulWidget {
|
|
|
|
public override State createState() {
|
|
return new DateAndTimePickerWidgetState();
|
|
}
|
|
}
|
|
|
|
|
|
public class DateAndTimePickerWidgetState : State<DateAndTimePickerWidget>
|
|
{
|
|
|
|
Widget _buildMenu(List<Widget> children) {
|
|
return new Container(
|
|
decoration: new BoxDecoration(
|
|
color: CupertinoTheme.of(this.context).scaffoldBackgroundColor,
|
|
border: new Border(
|
|
top: new BorderSide(color: new Color(0xFFBCBBC1), width: 0.0f),
|
|
bottom: new BorderSide(color: new Color(0xFFBCBBC1), width: 0.0f)
|
|
)
|
|
),
|
|
height: 44.0f,
|
|
child: new Padding(
|
|
padding: EdgeInsets.symmetric(horizontal: 16.0f),
|
|
child: new SafeArea(
|
|
top: false,
|
|
bottom: false,
|
|
child: new Row(
|
|
//mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: children
|
|
)
|
|
)
|
|
)
|
|
);
|
|
}
|
|
DateTime dateTime = DateTime.Now;
|
|
|
|
Widget _buildBottomPicker(Widget picker) {
|
|
return new Container(
|
|
height: 216f,
|
|
width : 500f,
|
|
padding: EdgeInsets.only(top: 6.0f),
|
|
color: Colors.white,
|
|
child: new DefaultTextStyle(
|
|
style: new TextStyle(
|
|
color: Colors.red,
|
|
fontSize: 12.0f
|
|
),
|
|
child: new GestureDetector(
|
|
// Blocks taps from propagating to the modal sheet and popping.
|
|
onTap: () => { },
|
|
child: new SafeArea(
|
|
top: false,
|
|
child: picker
|
|
)
|
|
)
|
|
)
|
|
);
|
|
}
|
|
Widget _buildDateAndTimePicker(BuildContext context) {
|
|
return new GestureDetector(
|
|
onTap: () => {
|
|
CupertinoRouteUtils.showCupertinoModalPopup(
|
|
context: context,
|
|
builder: (BuildContext _context) => {
|
|
return this._buildBottomPicker(
|
|
new CupertinoTheme(
|
|
data: new CupertinoThemeData(
|
|
textTheme: new CupertinoTextThemeData(
|
|
dateTimePickerTextStyle: new TextStyle(
|
|
fontSize: 16,
|
|
color: Colors.white
|
|
)
|
|
)
|
|
),
|
|
child :new CupertinoDatePicker(
|
|
backgroundColor: Colors.black,
|
|
mode: CupertinoDatePickerMode.dateAndTime,
|
|
initialDateTime: this.dateTime,
|
|
onDateTimeChanged: (DateTime newDateTime) => {
|
|
this.setState(() => this.dateTime = newDateTime);
|
|
}
|
|
)
|
|
));
|
|
}
|
|
);
|
|
},
|
|
child: new Text(
|
|
this.dateTime.ToString("MMMM dd, yyyy h:mm tt"),
|
|
style: new TextStyle(color: Colors.white)
|
|
|
|
)
|
|
);
|
|
}
|
|
public override Widget build(BuildContext context)
|
|
{
|
|
return new Container(
|
|
color : Colors.black,
|
|
child : this._buildDateAndTimePicker(context)
|
|
);
|
|
}
|
|
}
|
|
}
|