siyao
4 年前
当前提交
fd79d96f
共有 13 个文件被更改,包括 342 次插入 和 38 次删除
-
8com.unity.uiwidgets/Runtime/material/banner.cs
-
6com.unity.uiwidgets/Runtime/material/bottom_app_bar.cs
-
8com.unity.uiwidgets/Runtime/material/bottom_sheet.cs
-
7com.unity.uiwidgets/Runtime/material/button.cs
-
12com.unity.uiwidgets/Runtime/material/divider.cs
-
2com.unity.uiwidgets/Runtime/material/ink_well.cs
-
20com.unity.uiwidgets/Runtime/material/tooltip.cs
-
14com.unity.uiwidgets/Runtime/widgets/automatic_keep_alive.cs
-
4com.unity.uiwidgets/Runtime/widgets/framework.cs
-
204Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/MaterialAppBarSample.cs
-
11Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/MaterialAppBarSample.cs.meta
-
73Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/MaterialButtonSample.cs
-
11Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/MaterialButtonSample.cs.meta
|
|||
using System.Collections.Generic; |
|||
using uiwidgets; |
|||
using Unity.UIWidgets.engine2; |
|||
using Unity.UIWidgets.foundation; |
|||
using Unity.UIWidgets.material; |
|||
using Unity.UIWidgets.painting; |
|||
using Unity.UIWidgets.rendering; |
|||
using Unity.UIWidgets.ui; |
|||
using Unity.UIWidgets.widgets; |
|||
using UnityEngine; |
|||
using TextStyle = Unity.UIWidgets.painting.TextStyle; |
|||
using ui_ = Unity.UIWidgets.widgets.ui_; |
|||
|
|||
namespace UIWidgetsSample { |
|||
|
|||
public class MaterialAppBarSample : UIWidgetsPanel { |
|||
|
|||
protected override void main() { |
|||
ui_.runApp(new MaterialApp( |
|||
showPerformanceOverlay: false, |
|||
home: new MaterialAppBarWidget())); |
|||
} |
|||
|
|||
protected new void OnEnable() { |
|||
base.OnEnable(); |
|||
} |
|||
} |
|||
|
|||
public class MaterialAppBarWidget : StatefulWidget { |
|||
public MaterialAppBarWidget(Key key = null) : base(key) { |
|||
} |
|||
|
|||
public override State createState() { |
|||
return new MaterialAppBarWidgetState(); |
|||
} |
|||
} |
|||
|
|||
public class MaterialAppBarWidgetState : State<MaterialAppBarWidget> { |
|||
Choice _selectedChoice = Choice.choices[0]; |
|||
|
|||
GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>.key(); |
|||
|
|||
VoidCallback _showBottomSheetCallback; |
|||
|
|||
public override void initState() { |
|||
base.initState(); |
|||
this._showBottomSheetCallback = this._showBottomSheet; |
|||
} |
|||
|
|||
void _showBottomSheet() { |
|||
this.setState(() => { this._showBottomSheetCallback = null; }); |
|||
|
|||
this._scaffoldKey.currentState.showBottomSheet((BuildContext subContext) => { |
|||
ThemeData themeData = Theme.of(subContext); |
|||
return new Container( |
|||
decoration: new BoxDecoration( |
|||
border: new Border( |
|||
top: new BorderSide( |
|||
color: themeData.disabledColor))), |
|||
child: new Padding( |
|||
padding: EdgeInsets.all(32.0f), |
|||
child: new Text("This is a Material persistent bottom sheet. Drag downwards to dismiss it.", |
|||
textAlign: TextAlign.center, |
|||
style: new TextStyle( |
|||
color: themeData.accentColor, |
|||
fontSize: 16.0f)) |
|||
) |
|||
); |
|||
}).closed.then((object obj) => { |
|||
if (this.mounted) { |
|||
this.setState(() => { this._showBottomSheetCallback = this._showBottomSheet; }); |
|||
} |
|||
}); |
|||
} |
|||
|
|||
void _select(Choice choice) { |
|||
this.setState(() => { this._selectedChoice = choice; }); |
|||
} |
|||
|
|||
public override Widget build(BuildContext context) { |
|||
return new Scaffold( |
|||
key: this._scaffoldKey, |
|||
appBar: new AppBar( |
|||
title: new Text("Basic AppBar"), |
|||
actions: new List<Widget> { |
|||
new IconButton( |
|||
icon: new Icon(Choice.choices[0].icon), |
|||
//color: Colors.blue,
|
|||
onPressed: () => { this._select((Choice.choices[0])); } |
|||
), |
|||
new IconButton( |
|||
icon: new Icon(Choice.choices[1].icon), |
|||
//color: Colors.blue,
|
|||
onPressed: () => { this._select((Choice.choices[1])); } |
|||
), |
|||
|
|||
new PopupMenuButton<Choice>( |
|||
onSelected: this._select, |
|||
itemBuilder: (BuildContext subContext) => { |
|||
List<PopupMenuEntry<Choice>> popupItems = new List<PopupMenuEntry<Choice>>(); |
|||
for (int i = 2; i < Choice.choices.Count; i++) { |
|||
popupItems.Add(new PopupMenuItem<Choice>( |
|||
value: Choice.choices[i], |
|||
child: new Text(Choice.choices[i].title))); |
|||
} |
|||
|
|||
return popupItems; |
|||
} |
|||
) |
|||
} |
|||
), |
|||
body: new Padding( |
|||
padding: EdgeInsets.all(16.0f), |
|||
child: new ChoiceCard(choice: this._selectedChoice) |
|||
), |
|||
floatingActionButton: new FloatingActionButton( |
|||
backgroundColor: Colors.redAccent, |
|||
child: new Icon(Unity.UIWidgets.material.Icons.add_alert), |
|||
onPressed: this._showBottomSheetCallback |
|||
), |
|||
drawer: new Drawer( |
|||
child: new ListView( |
|||
padding: EdgeInsets.zero, |
|||
children: new List<Widget> { |
|||
new ListTile( |
|||
leading: new Icon(Unity.UIWidgets.material.Icons.account_circle), |
|||
title: new Text("Login"), |
|||
onTap: () => { } |
|||
), |
|||
new Divider( |
|||
height: 2.0f), |
|||
new ListTile( |
|||
leading: new Icon(Unity.UIWidgets.material.Icons.account_balance_wallet), |
|||
title: new Text("Wallet"), |
|||
onTap: () => { } |
|||
), |
|||
new Divider( |
|||
height: 2.0f), |
|||
new ListTile( |
|||
leading: new Icon(Unity.UIWidgets.material.Icons.accessibility), |
|||
title: new Text("Balance"), |
|||
onTap: () => { } |
|||
) |
|||
} |
|||
) |
|||
) |
|||
); |
|||
} |
|||
} |
|||
|
|||
class Choice { |
|||
public Choice(string title, IconData icon) { |
|||
this.title = title; |
|||
this.icon = icon; |
|||
} |
|||
|
|||
public readonly string title; |
|||
public readonly IconData icon; |
|||
|
|||
public static List<Choice> choices = new List<Choice> { |
|||
new Choice("Car", Unity.UIWidgets.material.Icons.directions_car), |
|||
new Choice("Bicycle", Unity.UIWidgets.material.Icons.directions_bike), |
|||
new Choice("Boat", Unity.UIWidgets.material.Icons.directions_boat), |
|||
new Choice("Bus", Unity.UIWidgets.material.Icons.directions_bus), |
|||
new Choice("Train", Unity.UIWidgets.material.Icons.directions_railway), |
|||
new Choice("Walk", Unity.UIWidgets.material.Icons.directions_walk) |
|||
}; |
|||
} |
|||
|
|||
class ChoiceCard : StatelessWidget { |
|||
public ChoiceCard(Key key = null, Choice choice = null) : base(key: key) { |
|||
this.choice = choice; |
|||
} |
|||
|
|||
public readonly Choice choice; |
|||
|
|||
public override Widget build(BuildContext context) { |
|||
TextStyle textStyle = Theme.of(context).textTheme.display1; |
|||
return new Card( |
|||
color: Colors.white, |
|||
child: new Center( |
|||
child: new Column( |
|||
mainAxisSize: MainAxisSize.min, |
|||
crossAxisAlignment: CrossAxisAlignment.center, |
|||
children: new List<Widget> { |
|||
new Icon(this.choice.icon, size: 128.0f, color: textStyle.color), |
|||
new RaisedButton( |
|||
child: new Text(this.choice.title, style: textStyle), |
|||
onPressed: () => { |
|||
SnackBar snackBar = new SnackBar( |
|||
content: new Text(this.choice.title + " is chosen !"), |
|||
action: new SnackBarAction( |
|||
label: "Ok", |
|||
onPressed: () => { })); |
|||
|
|||
Scaffold.of(context).showSnackBar(snackBar); |
|||
}) |
|||
} |
|||
) |
|||
) |
|||
); |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 684439e8285b14ebc894b328936d06dd |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
|
|||
using System.Collections.Generic; |
|||
using Unity.UIWidgets.engine2; |
|||
using Unity.UIWidgets.foundation; |
|||
using Unity.UIWidgets.material; |
|||
using Unity.UIWidgets.painting; |
|||
using Unity.UIWidgets.ui; |
|||
using Unity.UIWidgets.widgets; |
|||
using UnityEngine; |
|||
using Color = Unity.UIWidgets.ui.Color; |
|||
using Material = Unity.UIWidgets.material.Material; |
|||
using ui_ = Unity.UIWidgets.widgets.ui_; |
|||
|
|||
namespace UIWidgetsSample { |
|||
|
|||
public class MaterialButtonSample : UIWidgetsPanel { |
|||
|
|||
protected override void main() { |
|||
ui_.runApp(new MaterialApp( |
|||
showPerformanceOverlay: false, |
|||
home: new MaterialButtonWidget())); |
|||
} |
|||
|
|||
protected new void OnEnable() { |
|||
base.OnEnable(); |
|||
} |
|||
} |
|||
|
|||
public class MaterialButtonWidget : StatefulWidget { |
|||
public MaterialButtonWidget(Key key = null) : base(key) { |
|||
} |
|||
|
|||
public override State createState() { |
|||
return new MaterialButtonWidgetState(); |
|||
} |
|||
} |
|||
|
|||
public class MaterialButtonWidgetState : State<MaterialButtonWidget> { |
|||
public override Widget build(BuildContext context) { |
|||
return new Stack( |
|||
children: new List<Widget> { |
|||
new Material( |
|||
child: new Center( |
|||
child: new Column( |
|||
children: new List<Widget> { |
|||
new Padding(padding: EdgeInsets.only(top: 30f)), |
|||
new MaterialButton( |
|||
shape: new RoundedRectangleBorder(borderRadius: BorderRadius.all(20.0f)), |
|||
color: new Color(0xFF00FF00), |
|||
splashColor: new Color(0xFFFF0011), |
|||
highlightColor: new Color(0x88FF0011), |
|||
child: new Text("Click Me"), |
|||
onPressed: () => { Debug.Log("pressed flat button"); } |
|||
), |
|||
new Padding(padding: EdgeInsets.only(top: 30f)), |
|||
new MaterialButton( |
|||
shape: new RoundedRectangleBorder(borderRadius: BorderRadius.all(20.0f)), |
|||
color: new Color(0xFFFF00FF), |
|||
splashColor: new Color(0xFFFF0011), |
|||
highlightColor: new Color(0x88FF0011), |
|||
elevation: 4.0f, |
|||
child: new Text("Click Me"), |
|||
onPressed: () => { Debug.Log("pressed raised button"); } |
|||
) |
|||
} |
|||
) |
|||
) |
|||
) |
|||
} |
|||
); |
|||
} |
|||
} |
|||
|
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: 347e0378e419f46f2af69e1214f1ae5b |
|||
MonoImporter: |
|||
externalObjects: {} |
|||
serializedVersion: 2 |
|||
defaultReferences: [] |
|||
executionOrder: 0 |
|||
icon: {instanceID: 0} |
|||
userData: |
|||
assetBundleName: |
|||
assetBundleVariant: |
撰写
预览
正在加载...
取消
保存
Reference in new issue