Flutter系列(十一)实现商城首页和商品详情页

基础工程:

Flutter系列(四)底部导航+顶部导航+图文列表完整代码_摸金青年v的博客-CSDN博客

一、前言

        本文用flutter实现商城首页商品详情页,效果如下图:

             

二、使用的组件

MasonryGridView.count   瀑布流插件,组合Expanded可以添加固定在底部的按钮组

三、完整代码

 3.1 商城首页

1)瀑布流官方插件文档:flutter_staggered_grid_view | Flutter Package (pub.dev)

pubspec.yaml   添加依赖:   

dependencies:
  flutter:
    sdk: flutter
  # 瀑布流插件
  flutter_staggered_grid_view: ^0.6.2
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';  

2)页面跳转动画特效:动画特效工具类   animationUtile.dart    

参考文章:Flutter系列(九)ListView实现新闻列表和正文布局_摸金青年v的博客-CSDN博客

3)顶部搜索框

参考文章:Flutter系列(八)搜索框详解_flutter 搜索框_摸金青年v的博客-CSDN博客

商城首页  shop.dart

import 'package:flutter/material.dart';
import 'package:flutter_play/search.dart';
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
import 'package:flutter_play/animationUtile.dart';
import 'package:flutter_play/skuDetail.dart';


/*商城页*/
class ShopPage extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: const Color(0xFFFBFBFB), //顶部背景色
        title: SearchAppBar(),  // 顶部搜素框(自定义组件)
      ),
      body: Column(
        children: [
          Container(
            margin: const EdgeInsets.all(8),
            width: 500,
            height: 180,
            child: Image.network('https://img-blog.csdnimg.cn/63efe7acbac74e7ebce85e3801f948e3.jpeg'
                , fit: BoxFit.fill, width: 500, height: 200), //可放轮播图 商品类别 筛选之类的
          ),
          Expanded(
            child: MasonryGridView.count( //瀑布流插件
              itemCount: listData.length, //条目个数:获取数据的个数
              scrollDirection: Axis.vertical, //默认主轴是垂直方向
              crossAxisCount: 2, //交叉轴(水平方向)列数
              mainAxisSpacing: 4, //主轴:垂直方向间距
              crossAxisSpacing: 4, //交叉轴:水平方向间距
              itemBuilder: _showSku,
              // shrinkWrap:true, //含义是真空压缩组件,对性能损耗很大,不建议使用
            ), //Expanded 解决GridView嵌套在Column中不兼容的问题
          )
        ]
      ),
    );
  }

  //sku列表展示
  Widget _showSku(context, index) {
    return Container(
      padding: const EdgeInsets.fromLTRB(8, 5, 8, 5),
      decoration: BoxDecoration(
          border: Border.all(
            color: const Color.fromRGBO(233, 233, 233, 0.9), //边框颜色
            width: 2, //边框宽度
        ), //边框
      ),
      child: GestureDetector(
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,下面是flutter集成fluwx实现微信登录的步骤和代码: 1. 首先在项目的 pubspec.yaml 文件中添加依赖: ```dart dependencies: fluwx: ^1.2.0 ``` 2. 在项目的 AndroidManifest.xml 文件中添加以下配置: ```xml <activity android:name=".wxapi.WXEntryActivity" android:exported="true" android:launchMode="singleTask" android:taskAffinity="" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> ``` 3. 在项目的 Info.plist 文件中添加以下配置: ```xml <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLName</key> <string>weixin</string> <key>CFBundleURLSchemes</key> <array> <string>你的AppID</string> </array> </dict> </array> <key>LSApplicationQueriesSchemes</key> <array> <string>weixin</string> </array> ``` 4. 在你的代码中引入 fluwx 包: ```dart import 'package:fluwx/fluwx.dart' as fluwx; ``` 5. 在你的代码中注册 fluwx: ```dart fluwx.registerWxApi( appId: "你的AppID", universalLink: "你的Universal Link", ); ``` 6. 在你的代码中实现微信登录: ```dart // 检查是否安装微信 bool isInstalled = await fluwx.isWeChatInstalled(); if (!isInstalled) { // 提示用户安装微信 return; } // 发送微信登录请求 fluwx.sendWeChatAuth( scope: "snsapi_userinfo", // 授权作用域 state: "wechat_login", // 自定义状态值 ).then((response) { // 处理登录结果 if (response.errCode == fluwx.WeChatSDK.ERR_OK) { // 登录成功,获取用户信息 String code = response.code; fluwx .getWeChatUserInfo( code: code, ) .then((userInfo) { // 处理用户信息 }); } else { // 登录失败 } }); ``` 以上就是使用 fluwx 实现微信登录的全部步骤和代码。需要注意的是,你需要将代码中的 "你的AppID" 和 "你的Universal Link" 替换为你在微信开放平台上注册的应用的实际值。同时,你还需要在微信开放平台上配置你的应用,以便 fluwx 能够正确地与微信进行交互。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值