IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Flutter开发之——getX-获取视图的几种方式(13) -> 正文阅读

[移动开发]Flutter开发之——getX-获取视图的几种方式(13)

一 概述

本文介绍在Flutter-getX中,获取视图的几种方式

  • GetView:最常用,是个const Stateless Widget,GetView<Controller>绑定控制器后可直接使用
  • GetResponsiveView:响应式视图,该视图包含screen属性,其中包含关于屏幕大小和类型的信息
  • GetWidget:使用较少,不是个const Stateless视图,它缓存了一个控制器

二 GetView示例

2.1 GetView-Controller控制器(控制器内容相同)

class AwesomeController extends GetxController {
  final String title = 'My Awesome View:';
  var count = 0.obs;
  increment() => count++;
}

2.2 GetWiew-Bindings页面绑定(绑定内容所做相同)

class AwesomeBindings implements Bindings
{
  @override
  void dependencies() {
  Get.lazyPut(() => AwesomeController());
  }
}

2.3 GetView-Page页面(构建使用方法为Widget build)

class AwesomeView extends GetView<AwesomeController> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(appBar: AppBar(title:  Text('AwesomeView')),body: Container(
      padding: const EdgeInsets.all(20),
      child: Column(children: [
        Obx(()=>Text(controller.title+"${controller.count}")),
        RaisedButton(child: Text('increment'),onPressed: ()=>controller.increment())
      ],), // just call `controller.something`
    ));
  }
}

2.4 效果图

##三 GetResponsiveView示例

3.1 GetResponsiveView-Controller 控制器(控制器内容相同)

class GetResponsiveViewController extends GetxController{
  final String title = 'GetResponsiveView View:';
  var count = 0.obs;
  increment() => count++;

}

3.2 GetResponsiveView-bindings页面绑定(绑定内容所做相同)

class GetResponsiveViewBindings implements Bindings{
  @override
  void dependencies() {
    Get.lazyPut(() => GetResponsiveViewController());
  }
}

3.3 GetResponsiveView-Page 页面(构建使用方法是Widget builder())

class GetResponsiveViewSample extends GetResponsiveView<GetResponsiveViewController> {
  // GetResponsiveViewSample({Key? key})
  //     : super(
  //           key: key,
  //           settings: const ResponsiveScreenSettings(
  //               desktopChangePoint: 800,
  //               tabletChangePoint: 700,
  //               watchChangePoint: 600));

  @override
  Widget builder() {
    return Scaffold(
      appBar: AppBar(title: Text('GetResponsiveViewSample')),
      body: Container(
        padding: const EdgeInsets.all(20),
        child: _buildWidgetPage(), // just call `controller.something`
      ),
    );
  }

  Widget _buildWidgetPage() {
    return Column(children: [
      Text("width:${screen.width},height:${screen.height},isPhone:${screen.isPhone}"),
      SizedBox(height: 20),
      Obx(() => Text(controller.title + "${controller.count}")),
      RaisedButton(child: Text('increment'), onPressed: () => controller.increment())
    ]);
  }
}

说明:此处的页面构建使用的是Widget builder(),其他页面构建使用的是Widget build(BuildContext context)

3.4 效果图

四 GetWidget示例

4.1 GetWidget-Controller控制器(控制器内容相同)

class GetWidgetController extends GetxController{
  final String title = 'GetWidget View:';
  var count = 0.obs;
  increment() => count++;
}

4.2 GetWidget-bindings页面绑定(绑定内容所做相同)

class GetWidgetBindings implements Bindings{
  @override
  void dependencies() {
   Get.lazyPut(() => GetWidgetController());
  }
}

4.3 GetWidget-Page页面(构建使用方法为Widget build(BuildContext context))

class GetWidgetSample extends GetWidget<GetWidgetController>{

  @override
  Widget build(BuildContext context) {
    return Scaffold(appBar: AppBar(title:  Text('GetWidget')),body: Container(
      padding: const EdgeInsets.all(20),
      child: _buildWidetPage(), // just call `controller.something`
    ));
  }
  Widget _buildWidetPage(){
    return  Column(children: [
      Obx(()=>Text(controller.title+"${controller.count}")),
      RaisedButton(child: Text('increment'),onPressed: ()=>controller.increment())
    ]);
  }
}

4.4 效果图

五 参考

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-15 11:39:14  更:2022-05-15 11:39:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:54:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码