flutter: 用visibility隐藏widget

一,代码:

controller:

import 'package:get/get.dart';

// 定义控制器
class VisibleController extends GetxController {
  //变量obs
  RxBool isVisible = true.obs;

  //方法
  void setIsVisble(value) {
    isVisible.value = value;
  }
}

view

import 'package:flutter/material.dart';
import 'package:get/get.dart';

import 'VisibleController.dart';

class VisiblePage extends StatefulWidget {
  @override
  State<VisiblePage> createState() => _VisiblePageState();
}

class _VisiblePageState extends State<VisiblePage>  {
  VisibleController controller = Get.put(VisibleController());
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('GetView Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [

            Obx(() => Text('isVisble: ${controller.isVisible.value}')),
            Obx(() =>Visibility(
              visible: controller.isVisible.value,
              child: Text('这段文字可以看到'),
            )),

            ElevatedButton(
              onPressed: () => controller.setIsVisble(true),
              child: Text('使可见'),
            ),
            ElevatedButton(
              onPressed: () => controller.setIsVisble(false),
              child: Text('使不可见'),
            ),
          ],
        ),
      ),
    );
  }
}

二,测试效果:

可见:

不可见:

 

posted @ 2025-04-19 10:49  刘宏缔的架构森林  阅读(28)  评论(0)    收藏  举报