垂直叠加型布局


我们在上一章回中介绍了GirdView Widget,本章回中将介绍Stack这种Widget,闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

在Flutter中Stack主要用来叠加显示其它的Widget,类似我们日常生活中的楼层或者说PS中的图层,因此它也是一种布局类widget.

2. 使用方法

在Flutter中通过Stack类表示Stack Widget,它和其它的Widget一样使用类的属性(或者叫成员变量)来控制界面显示,我们只需要给构造方法中的命名参数赋值就
可以。常用的属性如下:

  • children属性用来包含每一层的widget;
  • aliment属性用来控制某个没有定位的widget在Satck中的位置;
    如果觉得aliment属性不方便,也可以Position Widget来控制位置,它和Container Widget属性类似,可以包含其它Widget,并且对被包含的Widget进行位置调整。

3. 示例代码

Widget stackEx = Stack(
  //这个偏移只对没有设置位置的widget起作用
  //(0,0)是中央位置
  // alignment: const Alignment(0.0,0.0),
  alignment: Alignment.center,
  children: [
    const CircleAvatar(
      backgroundColor: Colors.blueAccent,
      //找不到图片使用颜色填充
      backgroundImage: AssetImage("images/ax.png"),
      radius: 80,
      //不添加时有边框,添加后没有边框
      foregroundColor: Colors.black87,
    ),
   Container(
     decoration: const BoxDecoration(
       color: Colors.grey,
     ),

     child: const Text(
       'This text',
       style: TextStyle(
         fontSize: 26,
         fontWeight: FontWeight.bold,
         color: Colors.white,
       ),
     ),
   ),
   const Positioned(
      left: 5,
      top: 1,
      child: Icon(Icons.book)
    ),
  ],
);

在上面的代码中,我们创建了Stack对象来表示叠加的Widget,通过它的children属性包含了三个Widget:圆形的容器(CircleAvatar),文本(Text)和
图标(Icon)。这三个Widget的代码顺序决定了它们的叠加顺序:代码添加顺序越靠前的Widget,越位于叠加后的最底层。这三个Widget只有文本没有位置限制,因此
它受Stack中Aliment的控制位于中间。把上面的代码添加到我们创建的MaterialApp中就可以运行,运行程序时会显示一个圆形,中间是文本,图标位于左上
角(不明显),下面是MaterialApp的代码:

//build方法省略不写
  return MaterialApp(
        title: 'Flutter Demo',
        theme: ThemeData(primaryColor: Colors.blue),

        home: Scaffold(
            appBar: AppBar(
              title: const Text("Title of Hello App"),
            ),
            body: Column(
              children: [
                wechatBottom,
                imageEx,
                stackEx,
              ],
            )
        )
    );

注意:Stack只是用来控制Widget叠加的,因此它可以嵌套在Column Widget中。下面是程序的运行效果图:
看官们,关于Stack Widget的内容就介绍到这里,欢迎大家在评论区交流与讨论!

  • 20
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在Android中,可以使用不同的布局来实现图片局。其中,常用的布局有线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)和约束布局(ConstraintLayout)。下面给出每种布局的特点和使用方法,供您参考: 1. 线性布局(LinearLayout): 线性布局按照线性的顺序排列控件,可以有水平和垂直两种方向。您可以通过设置android:orientation属性来指定布局的方向,例如android:orientation="horizontal"表示水平布局,android:orientation="vertical"表示垂直布局。线性布局还可以使用android:layout_margin属性来设置控件与其周围边缘的距离。 2. 相对布局(RelativeLayout): 相对布局允许您在控件之间建立相对关系,使得控件可以根据其他控件的位置来进行布局。您可以使用不同的属性来设置控件的位置关系,例如android:layout_alignParentTop表示控件与父布局的顶部对齐,android:layout_below表示控件在另一个控件的下方等等。 3. 帧布局(FrameLayout): 帧布局允许多个控件叠放在同一个位置上,后面的控件会覆盖前面的控件。通常用于实现重叠效果的布局,例如图片轮播、叠加文字等。 4. 约束布局(ConstraintLayout): 约束布局是一个相对新的布局方式,它可以通过设置控件之间的约束关系来实现灵活的布局。您可以使用不同的约束属性,如android:layout_constraintTop_toTopOf、android:layout_constraintStart_toStartOf等来设置控件的位置和相对关系。 通过选择适合的布局方式,并合理设置布局属性,您可以实现不同的图片布局效果。希望以上信息对您有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Android studio 常见布局理解总结](https://blog.csdn.net/JUSTLOVEBOY/article/details/119600243)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talk_8

真诚赞赏,手有余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值