当前位置: 首页 > 知识库问答 >
问题:

如何在Flutter中以编程方式将Text()小部件替换为空容器()小部件?

宰父深
2023-03-14

我正在寻找AndroidVisibility.GONE等效选项。

以编程方式在 Flutter 中显示/隐藏小部件

上述链接批准的解决方案在将“不透明度”设置为 0 后将占用空间。对于没有像Android那样占用任何空间,该解决方案说

要使其不占用空间,请将其替换为空的Container()

有人请告诉我如何实现这一目标。我需要使Widget完全擦除,而无需以编程方式占用任何空间。

注意:我需要类似的执行解决方案,如Android本机代码< code>view.setVisibility(View。不见了)

共有3个答案

宦瀚
2023-03-14

有状态的小部件是做到这一点的方法之一。

因此,一旦您按下按钮,就会触发_toggle()函数。该函数将布尔值转换为false。

SetState(){}函数调用重建。

当isShow为false时,它将显示容器...

下面的例子:

import 'package:flutter/material.dart';

class HomePageScreen extends StatefulWidget {
  @override
  _HomePageScreenState createState() => _HomePageScreenState();
}

class _HomePageScreenState extends State<HomePageScreen> {
  bool _isShowing = true;

  void _toggle() {
    setState(() {
      _isShowing = !_isShowing;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Remove Text for Empty Container"),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            _isShowing
                ? Text("Remove Text")
                : Container(),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _toggle,
        tooltip: 'Toggle',
        child: Icon(Icons.add),
      ),
    );
  }
}
孔砚
2023-03-14

在带有条件显示的statefullwidget中执行此操作:请参阅下面的示例:

class _MyHomePageState extends State<MyHomePage> {
  bool _isShowing = true;

  void _toggle() {
    setState(() {
      _isShowing =!_isShowing ;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Visibility Page"),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Container(color: Colors.red, height: 50),
            if(_isShowing )
            Container(color: Colors.green, height: 50),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _toggle,
        tooltip: 'Toggle',
        child: Icon(Icons.add),
      ),
    );
  }
}
濮丰
2023-03-14

尝试后台:

Offstage(offstage: isHide, child:Text('test'),);
 类似资料:
  • 在Android中,每个子类都有一个方法,允许您修改对象的可见性 设置可见性有3个选项: 可见:呈现布局内部可见的 Flutter中的小部件是否有与上述相同的功能? 快速参考:https://developer.android.com/reference/android/view/View.html#attr_android:visibility

  • 问题内容: 在Android中,每个子类都有一个方法,可让您修改对象的可见性 设置可见性有3个选项: 可见:在布局内渲染可见 看不见:隐藏,但留下的间隙等于可见时将占据的间隙 消失:隐藏,并将其完全从布局中删除。这是因为如果它和人 Flutter中的小部件是否具有与上述等同的功能? 快速参考:https : //developer.android.com/reference/android/vie

  • 在Android中,每个子类都有一个方法,它允许您修改对象的可见性 设置可见性有3个选项: 可见:在布局中呈现可见 invisible:隐藏,但会留下一个间隙,该间隙相当于在可见时所占的位置 gone:隐藏并将其完全从布局中删除。就好像它的和是 Flutter中的Widgets是否有与上面等价的东西? 有关快速参考:https://developer.android.com/reference/a

  • 问题内容: 我想在小部件类绑定之后绑定自事件,以便在调用绑定函数时更改小部件的文本。例如,在文本窗口小部件中的内容更改之前,将调用我的绑定。 问题答案: 在您的情况下,发生的事情是您的打印值绑定发生在类绑定之前,而类绑定实际上是在接受用户输入并将其放入小部件中的。有几种方法可以解决此问题。您可以绑定而不是,或者可以使用内置的条目验证功能在每次按键时调用您的代码。使用该解决方案,您将获得所有需要的数

  • 我正在尝试从Flutter中的父部件传递堆栈的高度,但我无法做到。请帮助我找到解决方案,我将把我的代码作为参考。 父小工具 子部件 如何将堆栈的高度传递给SVGPicture。

  • 我来自像angular、react和vue这样的前端webframeworks,我很难找到编写可重用小部件样式的最佳方法。让我用一个例子来演示这个问题。 假设我们有这个小部件: 现在让我们假设我想让属性像、等可以通过参数改变。如果没有传递属性的某个参数,则应该使用其默认值,如下所示: