您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
125 行
4.3 KiB
125 行
4.3 KiB
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using Unity.UIWidgets.engine;
|
|
using Unity.UIWidgets.foundation;
|
|
using Unity.UIWidgets.gestures;
|
|
using Unity.UIWidgets.material;
|
|
using Unity.UIWidgets.painting;
|
|
using Unity.UIWidgets.rendering;
|
|
using Unity.UIWidgets.ui;
|
|
using Unity.UIWidgets.widgets;
|
|
using UnityEngine;
|
|
|
|
public class LocalPositionSample : UIWidgetsPanel
|
|
{
|
|
protected override void OnEnable()
|
|
{
|
|
base.OnEnable();
|
|
}
|
|
|
|
protected override Widget createWidget()
|
|
{
|
|
{
|
|
return new MaterialApp(
|
|
title: "Flutter Demo",
|
|
theme: new ThemeData(
|
|
primarySwatch: Colors.blue
|
|
),
|
|
home: new MyHomePage(title: "Local Position Test"));
|
|
}
|
|
}
|
|
|
|
public class MyHomePage : StatefulWidget
|
|
{
|
|
public MyHomePage(string title, Key key = null) : base(key: key)
|
|
{
|
|
this.title = title;
|
|
}
|
|
|
|
public readonly string title;
|
|
|
|
public override State createState()
|
|
{
|
|
return new _MyHomePageState();
|
|
}
|
|
}
|
|
|
|
public class _MyHomePageState : State<MyHomePage>
|
|
{
|
|
Offset _globalPostion = Offset.zero;
|
|
Offset _localPostion = Offset.zero;
|
|
|
|
void _checkPosition(TapUpDetails tapUpDetails)
|
|
{
|
|
setState(() =>
|
|
{
|
|
_globalPostion = tapUpDetails.globalPosition;
|
|
_localPostion = tapUpDetails.localPosition;
|
|
});
|
|
}
|
|
|
|
void _checkPosition(TapDownDetails tapUpDetails)
|
|
{
|
|
setState(() =>
|
|
{
|
|
_globalPostion = tapUpDetails.globalPosition;
|
|
_localPostion = tapUpDetails.localPosition;
|
|
});
|
|
}
|
|
|
|
public override Widget build(BuildContext context)
|
|
{
|
|
return new Scaffold(
|
|
appBar: new AppBar(
|
|
title: new Text(widget.title)
|
|
),
|
|
body: new Center(
|
|
child: new Column(
|
|
mainAxisAlignment: MainAxisAlignment.center,
|
|
children: new List<Widget>()
|
|
{
|
|
new Text(
|
|
"Tap to get global position and local position:"
|
|
),
|
|
new Text(
|
|
$"global position: {_globalPostion}",
|
|
style: Theme.of(context).textTheme.headline
|
|
),
|
|
new Text(
|
|
$"local position: {_localPostion}",
|
|
style: Theme.of(context).textTheme.headline
|
|
),
|
|
new GestureDetector(
|
|
onTapUp: _checkPosition,
|
|
child: new Container(
|
|
margin: EdgeInsets.all(10),
|
|
padding: EdgeInsets.all(10),
|
|
decoration: new BoxDecoration(color: Colors.red),
|
|
child: new Text("On Tap Up")
|
|
)
|
|
),
|
|
new GestureDetector(
|
|
onTapDown: _checkPosition,
|
|
child: new Container(
|
|
margin: EdgeInsets.all(10),
|
|
padding: EdgeInsets.all(30),
|
|
decoration: new BoxDecoration(Colors.orange),
|
|
child: new Text("on Tap Down")
|
|
)
|
|
),
|
|
new GestureDetector(
|
|
onTapDown: _checkPosition,
|
|
child: new Container(
|
|
padding: EdgeInsets.all(30),
|
|
decoration: new BoxDecoration(Colors.pink),
|
|
child: new Text("on Tap Down with 0 margin")
|
|
)
|
|
)
|
|
}
|
|
)
|
|
)
|
|
);
|
|
}
|
|
}
|
|
}
|