📜  Flutter –横幅小工具

📅  最后修改于: 2021-05-13 16:15:59             🧑  作者: Mango

横幅小部件内置有flutter API。它有点类似于调试横幅,就像我们习惯于在调试模式下在fluter应用程序的右上角看到的那样。它使我们能够在任何其他小部件顶部显示消息或文本。下面我们将借助示例及其所有属性来查看其实现。

Banner类的构造函数:

const Banner(
{Key key,
Widget child,
@required String message,
TextDirection textDirection,
@required BannerLocation location,
TextDirection layoutDirection,
Color color: _kColor,
TextStyle textStyle: _kTextStyle}
)

横幅小部件的属性:

  • 子级:此属性将小部件作为对象放置在横幅中。
  • color:此属性通过将Color类作为对象来为横幅分配背景色。
  • layoutDirection:此属性将TextDirection类作为对象,确定子控件将在Banner控件中放置的方向。
  • location:此属性通过将BannerLocation枚举作为对象来控制横幅的位置。
  • 消息:此属性将String值作为对象来确定要在横幅中显示的文本。
  • textDirection:此属性再次将TextDirection作为对象来确定文本的方向,该文本的方向可以是rtlltr
  • textStyle:此属性负责横幅小部件中文本的样式。它以TexStyle类为对象。

例子:

Dart
import 'package:flutter/material.dart';
  
//Material design liberary
void main() {
  runApp(
    //widget tree starts here
    MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('GeeksforGeeks'),
          backgroundColor: Colors.greenAccent[400],
          centerTitle: true,
        ), //AppBar
        body: Center(
          child: Container(
            margin: const EdgeInsets.all(10.0),
            child: ClipRect(
              /** Banner Widget **/
              child: Banner(
                message: "20% off !!",
                location: BannerLocation.bottomStart,
                color: Colors.red,
                child: Container(
                  color: Colors.green[100],
                  height: 300,
                  child: Padding(
                    padding: EdgeInsets.fromLTRB(10, 20, 10, 20),
                    child: Column(
                      children: [
                        Image.network(
                            'https://media.geeksforgeeks.org/wp-content/cdn-uploads/20190806131525/forkPython.jpg'), //Image.network
                        SizedBox(height: 10),
                        Text(
                          'GeeksforGeeks',
                          style: TextStyle(
                              color: Colors.green,
                              fontSize: 40,
                              fontWeight: FontWeight.bold), //TextStyle
                        ),
                        SizedBox(
                          height: 5,
                        ), //SizedBox
                        Text(
                          'Fork Python Course',
                          style: TextStyle(
                              color: Colors.green,
                              fontSize: 20,
                              fontWeight: FontWeight.bold), //TextStyle
                        ), //Text
                        SizedBox(height: 20),
                        RaisedButton(
                          child: Text('Register'),
                          color: Colors.greenAccent[400],
                          onPressed: () {},
                        ) //RaisedButton
                      ], //[]
                    ), //Column
                  ), //Padding
                ), //Container
              ), //Banner
            ), //ClipRect
          ), //container
        ), //Center
      ), //Scaffold
    ), //MaterialApp
  );
}


输出:

说明:在该flutter应用程序中, Banner窗口小部件ClipRect类的子级,该类裁剪掉超出框的部分。标语中的消息显示文本’20%off !!’,颜色红色,并且位置设置为bottomStart 。其余部分由Banner小部件的child属性保留。从横幅小部件到的层次结构是横幅>容器>填充>列。Colum小部件内,我们有一个小部件列表作为children属性的对象。列中的第一个元素是来自互联网的图像,然后我们有两个Text部件和一个RaisedButton,它们均由SizedBox部件分隔。

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!