相关疑难解决方法(0)

如何在Flutter中进行"磨砂玻璃"效果?

我正在编写一个Flutter应用程序,我想使用/实现iOS上常见的"磨砂玻璃"效果.我该怎么做呢?

dart flutter

68
推荐指数
3
解决办法
3万
查看次数

如何将指针事件发送到堆栈中的下层孩子

正如标题所说,在 Flutter 中使用 Stacks 时,如果“最后”渲染的孩子与所有其他孩子重叠,则只能与该孩子进行交互。在我的应用程序中,我有一个 ListWheelScrollView,它包含在一个堆栈中,然后使用位于 ScrollView 顶部的渐变进行“样式化”。

当给出一个例子时,这更有意义。

在几乎这种确切情况下存在一个现有问题:Flutter-GestureDetector not working with containers in stack

但是,它假定您正在使用手势检测器。

Stack(children: <Widget>[
          Container(
            height: 250,
            child: Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Container(
                  width: _style.fontSize * 1.5,
                  child: ListWheelScrollView.useDelegate(
                      controller: fixedExtentScrollController,
                      physics: FixedExtentScrollPhysics(),
                      itemExtent: _style.fontSize * 1.5,
                      childDelegate: ListWheelChildLoopingListDelegate(
                          children: hours
                              .map((hour) => hour < 10
                                  ? Text(
                                      "0$hour",
                                      style: _style,
                                    )
                                  : Text(
                                      "$hour",
                                      style: _style,
                                    ))
                              .toList())),
                ),
                Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    Text(
                      ":",
                      style: _style,
                    ),
                    SizedBox(
                      height: 25, …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-layout

10
推荐指数
1
解决办法
1352
查看次数

轻敲内部的 InkWell 时如何防止对周围的 InkWell 产生涟漪效应

假设我有这个小部件:

Card(
  child: InkWell(
    onTap: () {},
    child: Padding(
      padding: const EdgeInsets.all(28.0),
      child: RaisedButton(
        child: Text('Test'),
        onPressed: () {},
      ),
    ),
  ),
),
Run Code Online (Sandbox Code Playgroud)

我想禁止(防止示出)连锁反应上Card/InkWell只有当RaisedButton被窃听,但以显示它时,Card被分接(即,按钮之外)。有什么办法可以达到这个效果吗?

我认为普遍的问题可以是:如何防止在点击内部 InkWell 时对周围 InkWell 产生连锁反应?如果你的源代码看看,你可以看到,RaisedButtonMaterialInkWell小部件引起波动。

这是完整的示例代码

在此处输入图片说明

dart flutter flutter-layout

9
推荐指数
1
解决办法
1682
查看次数

Flutter AbsorbPointer与IgnorePointer的区别

AbsorbPointerIgnorePointerflutter有什么区别?

文件提及:

AbsorbPointer通过自身终止命中测试来防止其子树接收指针事件。

IgnorePointer,它还阻止其子级接收指针事件,但对于命中测试而言本身是不可见的。

我没有得到两者之间的真实生活差异。

dart flutter

7
推荐指数
1
解决办法
744
查看次数

在 Flutter 中以编程方式扩展 ExpansionTile

我只是想ExpansionTile在 Flutter 中使用,从我修改为这样的示例中:

在此处输入图片说明

我想隐藏箭头并用于Switch扩展磁贴,这可能吗?或者我是否需要以编程方式呈现子项的自定义小部件?基本上,我只需要显示/隐藏孩子

这是我的代码:

import 'package:flutter/material.dart';

void main() {
  runApp(ExpansionTileSample());
}
class ExpansionTileSample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('ExpansionTile'),
        ),
        body: ListView.builder(
          itemBuilder: (BuildContext context, int index) =>
              EntryItem(data[index]),
          itemCount: data.length,
        ),
      ),
    );
  }
}

// One entry in the multilevel list displayed by this app.
class Entry {
  Entry(this.title,[this.question='',this.children = const <Entry>[]]);

  final String title;
  final String question;
  final List<Entry> children;
} …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-layout

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

与 Stack 中的小部件进行交互,并用半透明的小部件覆盖它

我有一个小部件,我想在底部“淡出”,因此我将其放入堆栈中,顶部有一个容器,并使用适当的渐变作为容器的背景。但是,容器似乎正在消耗所有触摸事件,因此我无法与它后面的 Widget 交互,这是不可取的,因为 Widget 仍然大部分可见。有什么办法可以改变这种行为吗?

flutter flutter-layout

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

如何让listView的父级捕获拖动手势事件

我在手势检测器内使用 listView 时遇到问题。我试图根据 listView 的拖动方向执行一个函数。它不起作用,事件甚至没有被触发,因为显然拖动事件正在由列表视图处理。

我如何告诉 listView 不要这样做并忽略拖动事件,因为我只是希望我的项目位于彼此之下,实际上没有列表。

我是否只是切换到其他小部件并忘记列表,或者有解决方案吗?

这是我的代码:

return new GestureDetector(
  child: Material(
    elevation: 12.0,
    borderRadius: widget.frontLayerBorderRadius,
    child: Stack(
      children: <Widget>[
        new ListView(
          children: <Widget>[
            widget.enableAddingInactiveAreaToPanelWhenOpened?isTopPanelVisible?InactiveAreaWidget:new Container():new Container(),
            widget.frontLayer,
          ],
        ),
        _buildInactiveLayer(context,InactiveAreaWidget),
      ],
    ),
  ),
  onVerticalDragEnd: (details) {
    print(details);
    if(details.velocity.pixelsPerSecond.dy>0.0){
      showBackLayer();
    }

  },
);
Run Code Online (Sandbox Code Playgroud)

listview flutter

5
推荐指数
0
解决办法
847
查看次数

触摸手势可以传递给同级小部件吗?

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        child: MaterialButton(
          height: 100,
          color: Colors.grey,
          child: Text("DSG"),
          onPressed: () {
            print("Drawer sent gesture");
          },
        ),
      ),
      drawer: Container(
        height: 300,
        decoration: BoxDecoration(
          color: Colors.yellow,
        ),
        child: Center(
          child: MaterialButton(
            height: 100,
            color: Colors.grey,
            child: Text("DKG"),
            onPressed: () {
              print("Drawer kept gesture");
            }, …
Run Code Online (Sandbox Code Playgroud)

touch gesture uigesturerecognizer flutter flutter-layout

5
推荐指数
0
解决办法
389
查看次数

Flutter 如何将触摸事件通过一个平台视图传递到另一个平台视图

我有一个具有两个平台视图的应用程序,其中一个是涂鸦视图,另一个是网络视图,下面是我的代码

\n\n
Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(\n        title: Text('test'),\n      ),\n      body: BlocProvider<CourseDocBloc>(\n        create: (context) => CourseDocBloc(),\n        child: Container(\n          height: double.infinity,\n          child: Stack(\n            children: <Widget>[\n              Listener(\n                child: WebView(\n                  initialUrl: 'https://google.com',\n                  javascriptMode: JavascriptMode.unrestricted,\n                  onPageStarted: (url) {\n                    print('start load');\n                  },\n                  onPageFinished: (url) {\n                    print('load finished');\n                  },\n                ),\n               onPointerDown: (e) => {print('web down')},\n               onPointerUp: (e) => {print('web up')},\n              ),\n              UiKitView(\n                viewType: 'GLView',\n                hitTestBehavior: PlatformViewHitTestBehavior.transparent, \n                onPlatformViewCreated: (_) => created(),\n              )\n            ],\n          ),\n        ),\n      ),\n    );\n  }\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我设置UiKitView hitTestBehavior: PlatformViewHitTestBehavior.transparent …

dart flutter

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