首页 > 其他分享 >强制横屏

强制横屏

时间:2023-12-19 14:35:43浏览次数:41  
标签:Widget return Text 横屏 context child 强制

1,强制横屏

OrientationBuilder小部件以及SystemChrome类来实现根据设备类型进行强制横屏

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

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

class MyApp1 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Force Landscape',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Force Landscape'),
        ),
        body: OrientationBuilder(
          builder: (context, orientation) {
            SystemChrome.setPreferredOrientations([
              DeviceOrientation.landscapeLeft,
              DeviceOrientation.landscapeRight,
            ]); // 强制横屏

            return orientation == Orientation.portrait
                ? buildPortraitLayout()
                : buildLandscapeLayout();
          },
        ),
      ),
    );
  }

  Widget buildPortraitLayout() {
    return const Center(
      child: Text(
        'Please rotate your device to landscape orientation.',
        style: TextStyle(fontSize: 20.0),
      ),
    );
  }

  Widget buildLandscapeLayout() {
    return Column(
      mainAxisAlignment: MainAxisAlignment.end,
      children: [
        const Expanded(
          child: Center(
            child: Text(
              'This is the main content.',
              style: TextStyle(fontSize: 20.0),
            ),
          ),
        ),
        Container(
          color: Colors.blue,
          padding: EdgeInsets.all(16.0),
          child: const Text(
            'Bottom Bar',
            style: TextStyle(color: Colors.white, fontSize: 16.0),
          ),
        ),
      ],
    );
  }
}

 2.

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 强制横屏
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.landscapeLeft,
      DeviceOrientation.landscapeRight,
    ]);

    return MaterialApp(
      title: 'Flutter横屏示例',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 获取屏幕宽度和高度
    var screenWidth = MediaQuery.of(context).size.width;
    var screenHeight = MediaQuery.of(context).size.height;

    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter横屏示例'),
      ),
      body: Container(
        padding: EdgeInsets.all(10),
        // 根据屏幕宽度手动计算并适配UI布局
        width: screenWidth,
        height: screenHeight,
        child: Center(
          child: Text(
            '这是一个横屏示例',
            style: TextStyle(fontSize: screenWidth * 0.05),
          ),
        ),
      ),
    );
  }
}

 

标签:Widget,return,Text,横屏,context,child,强制
From: https://www.cnblogs.com/xbinbin/p/17877019.html

相关文章

  • 安防监控视频管理平台EasyCVR v3.4版如何取消首次登录强制重置密码的操作?
    在视频监控领域,智慧安防平台EasyCVR平台采用了开放式的网络结构,支持高清视频的接入和传输、分发,能提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频能力,此外,高清可视化视频监控平台EasyCVR......
  • 无法强制删除状态为 Terminating 的命名空间
    1、查看ns[root@master1~]#kubectlgetnsNAMESTATUSAGEdefaultActive2d22histio-systemActive109mkube-node-leaseActive2d22hkube-public......
  • Python爬虫获取校园课表(强制系统举例)
    Http:超文本传输协议Https:安全的http首先引入request库:pipinstallrequests 先F12打开页面检查,在network(网络)里面,然后刷新页面,会发先有个请求文档,点击并观察它:在常规里面可以看到请求地址为https://www.paisi.edu.cn:8181/jsxsd/?tdsourcetag=s_pcqq_aiomsg,将它复制到......
  • 指针强制类型转换的本质
    例题:#include<iostream>#include<stdio.h>#definelllonglongusingnamespacestd;intans[100];intmain(){ doubled; cin>>d; llp=*(ll*)&d; intcnt=0;for(;cnt<64;){ans[++cnt]=p&1;p>&g......
  • selenium之三种等待,强制等待、隐式等待和显式等待
      显式等待presence_of_element_locatedpresence_of_all_elements_locatedvisibility_of_any_elements_located  判断页面至少有一个元素可见visible,传入locator,一旦定位就返回thelistoflocatedWebElements;  不可见(元素隐藏或是完全不存在,一个都没有)返回的是......
  • 【C语言】强制类型转换表达式
    #include<stdio.h>intmain(){ doublea=3.45; printf("%f\n\n",a); printf("%d\n\n",(int)(a)); printf("%d\n\n",(int)a); printf("%d\n\n",int(a)); /*printf("%d\n\n",inta);*/} ......
  • Android 11 -- 强制清理app后台,关于权限引发的问题
    需求:发现一个第三方应用,点击最近任务,在清理后台的界面没办法将它彻底杀死android11的最近任务部分在launcher3里面quickstep里面quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java在这个里面添加强制清理app的方法privatevoidremov......
  • CentOS7安装强制使用gpt分区
    安装CentOS时,系统默认会使用mbr模式。如果磁盘大于2T,则需要如下操作,在开机启动画面按tab键,以便输入核心参数,在行末输入空格后inst.gpt,回车: 可以如下模式分区,其中根分区既可以是基本的xfs或者ext3,也可以是lvm格式: ......
  • 强制关闭xxx进程
    目录基本语法举个......
  • 自动类型转换与强制类型转换
    一、题目:floatx=123.4567;printf("%.2f,(int)(x*100+0.5)/100.00");首先是x*100,100自动向上转型成浮点数与x相乘,再加0.5,再这部分整体强制类型转换成整型,最后除以100.00,分子自动转换成浮点数,输出保留两位小数结果:123.46二、自动类型转换三、优先级优先级表格......