Flutter屏幕适配插件responsive_size的使用

Flutter屏幕适配插件responsive_size的使用

简介

responsive_size 是一个帮助在 Flutter 中创建响应式 UI 的包。

如何使用

首先,在 main.dart 文件中初始化 ResponsiveSize

ResponsiveSize.init(designWidth: 414, designHeight: 896);

然后导入 responsive_size 包以使用其扩展功能:

import 'package:responsive_size/responsive_size.dart';

接下来,可以调用 .w(宽度)、.h(高度)、.sp(字体大小):

return Container(
    width: 120.w, // 120 是设计稿中的宽度
    height: 240.h, // 240 是设计稿中的高度
    child: Text(
      'Hello world', 
      style: TextStyle(fontSize: 12.sp), // 12 是设计稿中的字体大小
    ), 
 );

或者也可以调用 getWidth(宽度)、getHeight(高度)、getSp(字体大小):

return Container(
    width: getWidth(120), // 120 是设计稿中的宽度
    height: getHeight(240), // 240 是设计稿中的高度
    child: Text(
      'Hello world', 
      style: TextStyle(fontSize: getSp(12)), // 12 是设计稿中的字体大小
    ), 
 );

还可以直接使用块(blocks):widthBlock(宽度)、heightBlock(高度)、spBlock(字体大小):

return Container(
    width: widthBlock * 15, // widthBlock 表示屏幕宽度的 1%
    height: heightBlock * 30, // heightBlock 表示屏幕高度的 1%
    child: Text(
      'Hello world', 
      style: TextStyle(fontSize: spBlock * 1.1), // spBlock 表示默认字体大小的 100%
    ), 
 );

如何安装

在项目的 pubspec.yaml 文件中添加以下依赖:

dependencies:
  responsive_size: ^版本号

然后运行以下命令安装依赖:

flutter pub get

示例代码

以下是一个完整的示例代码,展示如何使用 responsive_size 插件:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: ResponsiveScreen(),
    );
  }
}

class ResponsiveScreen extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    // 初始化屏幕适配
    ResponsiveSize.init(designWidth: 414, designHeight: 896);

    return Scaffold(
      appBar: AppBar(
        title: Text('Responsive Size Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Container(
              width: 120.w, // 使用 .w 方法
              height: 240.h, // 使用 .h 方法
              color: Colors.blue,
              child: Center(
                child: Text(
                  'Hello World',
                  style: TextStyle(fontSize: 12.sp), // 使用 .sp 方法
                ),
              ),
            ),
            SizedBox(height: 20),
            Container(
              width: getWidth(120), // 使用 getWidth 方法
              height: getHeight(240), // 使用 getHeight 方法
              color: Colors.green,
              child: Center(
                child: Text(
                  'Hello World',
                  style: TextStyle(fontSize: getSp(12)), // 使用 getSp 方法
                ),
              ),
            ),
            SizedBox(height: 20),
            Container(
              width: widthBlock * 15, // 使用 widthBlock
              height: heightBlock * 30, // 使用 heightBlock
              color: Colors.red,
              child: Center(
                child: Text(
                  'Hello World',
                  style: TextStyle(fontSize: spBlock * 1.1), // 使用 spBlock
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter屏幕适配插件responsive_size的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter屏幕适配插件responsive_size的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


responsive_size 是一个用于 Flutter 的屏幕适配插件,它可以帮助你在不同尺寸的屏幕上更好地布局和适配 UI 组件。通过使用 responsive_size,你可以根据屏幕的宽度和高度来动态调整组件的大小,从而确保应用在不同设备上都能有良好的显示效果。

安装

首先,你需要在 pubspec.yaml 文件中添加 responsive_size 依赖:

dependencies:
  flutter:
    sdk: flutter
  responsive_size: ^1.0.0  # 请检查最新版本

然后运行 flutter pub get 来安装依赖。

基本用法

responsive_size 提供了 ResponsiveSize 类,你可以使用它来获取屏幕的宽度和高度,并根据这些值来动态调整组件的大小。

1. 初始化 ResponsiveSize

在你的 main.dart 文件中,你可以在 runApp 之前初始化 ResponsiveSize

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

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

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

2. 使用 ResponsiveSize 进行布局

在需要适配的页面中,你可以使用 ResponsiveSize 提供的 widthheight 方法来获取屏幕的百分比宽度和高度。

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

class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Responsive Size Example'),
      ),
      body: Center(
        child: Container(
          width: ResponsiveSize.width(50), // 50% of screen width
          height: ResponsiveSize.height(20), // 20% of screen height
          color: Colors.blue,
          child: Center(
            child: Text(
              'Responsive Container',
              style: TextStyle(color: Colors.white),
            ),
          ),
        ),
      ),
    );
  }
}

其他功能

responsive_size 还提供了其他一些功能,比如根据屏幕的宽度或高度来设置字体大小、边距等。

动态字体大小

你可以使用 ResponsiveSize.textSize 方法来动态设置字体大小:

Text(
  'Responsive Text',
  style: TextStyle(
    fontSize: ResponsiveSize.textSize(4), // 4% of screen width
  ),
);

动态边距

你可以使用 ResponsiveSize.margin 方法来动态设置边距:

Container(
  margin: EdgeInsets.all(ResponsiveSize.margin(2)), // 2% of screen width
  color: Colors.red,
  child: Text('Container with responsive margin'),
);
回到顶部