小编Tom*_*yan的帖子

在 flutter 中何时使用 Valuechanged<> 与 Valuesetter<>

我一直在关注他们网站上的一些初学者颤振教程,并且正在编写教程以实现基本的交互性,特别是使用父窗口小部件来管理子窗口小部件的状态的部分。有一个ParentWidgetand_ParentWidgetState类,其代码如下:

class ParentWidget extends StatefulWidget {
   @override
   _ParentWidgetState createState() => _ParentWidgetState();
}

class _ParentWidgetState extends State<ParentWidget> {
  bool _active = false;

  void _handleTapboxChanged(bool newValue) {
    setState(() {
       _active = newValue;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      child: TapboxB(
        active: _active,
        onChanged: _handleTapboxChanged,
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

TapboxB是 的子类ParentWidget,其代码如下:

class TapboxB extends StatelessWidget {
  TapboxB({this.active: false, @required this.onChanged});

  final bool active;
  final ValueChanged<bool> onChanged;

  void _handleTap() {
    onChanged(!active);
  } …
Run Code Online (Sandbox Code Playgroud)

dart flutter

8
推荐指数
1
解决办法
1万
查看次数

在 Unity 中创建 2D 圆形网格

我目前有一个“CreateMesh”脚本,可以将其作为具有网格渲染器和网格过滤器的对象的组件,并且在给定“MeshType”变量的情况下,使用网格尺寸中的多边形碰撞器创建二维网格设置为“tri”或“box”(分别用于三角形和矩形网格。)我还想添加创建圆形网格的能力,但是从一些研究中我意识到这并不像我第一次那么简单想法。但是,我还没有找到任何有帮助的东西。

这是我的长方体和三角形网格的代码:

public float width = 5f;
public float height = 5f;

public string meshType;

public PolygonCollider2D polyCollider;

void Start()
{
    polyCollider = GetComponent<PolygonCollider2D>();
}

// Update is called once per frame
void Update () {
    if (meshType == "tri")
    {
        TriangleMesh(width, height);
    }
    if (meshType == "box")
    {
        BoxMesh(width, height);
    }

}

void TriangleMesh(float width, float height)
{
    MeshFilter mf = GetComponent<MeshFilter>();
    Mesh mesh = new Mesh();
    mf.mesh = mesh;

    //Verticies
    Vector3[] verticies = new Vector3[3]
    {
        new Vector3(0,0,0), …
Run Code Online (Sandbox Code Playgroud)

c# mesh unity-game-engine

6
推荐指数
1
解决办法
7955
查看次数

Flutter 测试:测试构建时是否选中复选框

我有一个动态表单系统,它基于 json 构建小部件。可以解析的组件之一是复选框,并传递默认值来确定它最初是否被选中/取消选中。我正在为此编写一个单元测试,但遇到了语义问题。

我的测试从检查小部件是否已构建开始(以下测试成功)

//create form
await tester.pumpWidget(buildTestableWidget(testWidget));

//setup Finder
Finder widgetFinder = find.widgetWithText(FormCheckbox, "test checkbox");

//test for widget
expect(widgetFinder, findsOneWidget);
Run Code Online (Sandbox Code Playgroud)

班级FormCheckbox如下

class FormCheckbox extends StatefulWidget {
  final forms.Checkbox component;

  FormCheckbox(this.component) : super(key: Key("${component.propertyKey().getId()}"));

  _FormCheckboxState createState() => _FormCheckboxState(component);
}

class _FormCheckboxState extends State<FormCheckbox> {
  _FormCheckboxState(this._component) {
    this.boxValue = _component.isDefaultSelected();
  }

  final forms.Checkbox _component;
  bool boxValue;

  @override
  Widget build(BuildContext context) {
    return Padding(
        padding: const EdgeInsets.only(left: 16, right: 16, top: 6, bottom: 6),
        child: ListTile(
          leading: Material(
            child: Checkbox( …
Run Code Online (Sandbox Code Playgroud)

testing unit-testing dart flutter flutter-test

2
推荐指数
1
解决办法
3880
查看次数

构造函数和主方法有什么区别?

我已经使用 C# 一段时间了,但主要是在 Unity 中。我最近才开始在 Visual Studio 中简单地编写 C# 代码。

我只是在玩弄一个带有数组的队列,并对构造函数进行了一些研究。在我的 Queue 类中,我有一个为数组本身设置实例的构造函数:

public class Queue
{

    int front = 0;
    int rear = -1;
    int size = 0;
    const int maxSize = 5;
    int[] queue;

    public Queue()
    {
        queue = new int[maxSize];
    }

    //rest of class

}
Run Code Online (Sandbox Code Playgroud)

然后在调用的类中创建一个队列并使用它进行一些测试等,我使用了一个 main 方法:

class program
{
    static void Main()
    {
        Queue myQueue = new Queue();
        myQueue.enQueue(1);
        myQueue.enQueue(2);
        myQueue.enQueue(3);
        myQueue.enQueue(4);
        myQueue.enQueue(5);
        myQueue.enQueue(6);
        Console.WriteLine(myQueue.deQueue());
        Console.WriteLine(myQueue.deQueue());
        myQueue.enQueue(6);
        myQueue.enQueue(7);
        Console.WriteLine(myQueue.deQueue());
        Console.WriteLine(myQueue.deQueue());
        Console.WriteLine(myQueue.deQueue());
        Console.WriteLine(myQueue.deQueue());
        Console.WriteLine(myQueue.deQueue());
        Console.WriteLine(myQueue.deQueue());
        Console.ReadLine(); …
Run Code Online (Sandbox Code Playgroud)

c# constructor main-method

-1
推荐指数
1
解决办法
1047
查看次数