GVKun编程网logo

flutter ShapeBorder 类

13

本篇文章给大家谈谈flutterShapeBorder类,同时本文还将给你拓展asp.net–ShutterflyOrderAPI.、dart–FlutterError:当前的FlutterSDK版本

本篇文章给大家谈谈flutter ShapeBorder 类,同时本文还将给你拓展asp.net – Shutterfly Order API.、dart – Flutter Error:当前的Flutter SDK版本是2.1.0-dev.0.0.flutter-be6309690f、dart – Flutter – 更改OutlineInputBorder的边框颜色、dart – 如何在Flutter中绘制自定义圆角矩形边框(ShapeBorder)?等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

flutter ShapeBorder 类

flutter ShapeBorder 类

ShapeBorder 抽象类

形状轮廓的基类。

此类处理如何将多个边框添加到一起。

被继承类
  • BeveledRectangleBorder 顶端斜角
  • BoxBorder
  • CircleBorder 圆形
  • InputBorder
  • RoundedRectangleBorder 顶端圆角
  • StadiumBorder 体育场型

asp.net – Shutterfly Order API.

asp.net – Shutterfly Order API.

我找到了这个网站

http://www.shutterfly.com/documentation/api_OrderImage.sfly

但是没有实际走过整个过程的例子.有没有人有任何关于使用此API获取本地照片并允许某人通过shutterfly订购打印的良好文档?

解决方法

我完成了以下步骤:

> Sign up for an account
> Sign up as a developer

创建一个应用程序(我称之为测试).请注意生成的应用程序ID和共享密钥

Shutterfly API page具有各种特定于域的API的引用列表:

> Address Book
> Album Data
> Folder Data
> Go To Shutterfly UE
> Image Upload
> Interactive Sign-in
> Image Request
> Order
> Pricing
> Seamless Sign-in
> User Data
> User Authentication

每个都使用RESTful原则.如果您需要一些背景知识,文档看起来非常全面,这里有RESTful API和ROME的链接,您可能会发现它们很有用

同一页面上还有一个API Explorer部分,允许您通过其网站上的表单测试方法.例如CRUD operations on the album data的此表格.

根据您的评论,根据您的要求,您将:

>使用Album GET列出专辑,然后获取特定专辑的数据.
>使用Image Get请求检索图像数据,以便您的朋友可以验证他们想要购买的图像.
> Authenticate the user
>使用Pricing POST请求获取图像的估计定价.
>使用Order POST通过https提交订单

更新:使用Greasemonkey脚本找到页面describing,该脚本为Flickr添加了Shutterfly打印排序功能.这可能为解决方案提供基础.

dart – Flutter Error:当前的Flutter SDK版本是2.1.0-dev.0.0.flutter-be6309690f

dart – Flutter Error:当前的Flutter SDK版本是2.1.0-dev.0.0.flutter-be6309690f

我刚刚升级了我的扑动,升级后我无法在 Android Studio上运行任何扑动项目.我收到此错误消息.

The current Dart SDK version is 2.1.0-dev.0.0.Flutter-be6309690f.

Because buddy depends on Flutter_built_redux 0.4.5 which requires SDK 
version >=1.19.0 <2.0.0,version solving Failed.                                                  
pub get Failed (1)

如何降级Dart或如何解决此问题,我在mac上运行android studio.

我试过通过改变颤动的通道开发和主人,但它并没有什么区别.

扑医生-v结果:

[✓] Flutter (Channel dev,v0.6.0,on Mac OS X 10.13.4 17E202,locale en-IN)
• Flutter version 0.6.0 at /Users/pro/Downloads/Flutter
• Framework revision 9299c02cf7 (5 days ago),2018-08-16 00:35:12 +0200
• Engine revision e3687f70c7
• Dart version 2.1.0-dev.0.0.Flutter-be6309690f

[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
  • Android SDK at /Users/pro/Library/Android/sdk
  • Android NDK location not configured (optional; useful for native 
     profiling support)
  • Platform android-27,build-tools 27.0.3
  • Java binary at: /Applications/Android 
     Studio.app/Contents/jre/jdk/Contents/Home/bin/java
  • Java version OpenJDK Runtime Environment (build 1.8.0_152-release- 
     1024-b01)
• All Android licenses accepted.

[✓] iOS toolchain - develop for iOS devices (Xcode 9.4.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 9.4.1,Build version 9F2000
• ios-deploy 1.9.2
• CocoaPods version 1.5.0

[✓] Android Studio (version 3.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 27.1.1
• Dart plugin version 173.4700
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b01)

[!] Connected devices
! No devices available

解决方法

Flutter_built_redux包没有满足Flutter依赖.
错误是由包而不是Flutter sdk引起​​的.

看这里
https://github.com/davidmarne/flutter_built_redux/blob/master/pubspec.yaml#L22

您可以使用此链接在Flutter_built_redux包上发布问题
https://github.com/davidmarne/flutter_built_redux/issues/new?title=support%20for%20flutter%20sdk%202.1.0.dev&body=please%20upgrade%20the%20package%20for%20new%20flutter%20releases

dart – Flutter – 更改OutlineInputBorder的边框颜色

dart – Flutter – 更改OutlineInputBorder的边框颜色

我正在尝试更改OutlineInputBorder的边框颜色,但尝试了很多方法并失败了.

我通过buildDarkTheme()函数创建了整个主题配置,但我无法将边框颜色更改为黄色

下面是图片和代码:

enter image description here

import 'package:Flutter/material.dart';

void main() => runApp(new MyApp());

const kBlackHalf = const Color(0xFF212121);
const kBlackLight = const Color(0xFF484848);
const kBlack = const Color(0xFF000000);
const kYellow = const Color(0xFFffd600);
const kYellowLight = const Color(0xFFffff52);
const kYellowDark = const Color(0xFFc7a500);
const kWhite = Colors.white;

ThemeData buildDarkTheme() {
  final ThemeData base = ThemeData();
  return base.copyWith(
    primaryColor: kBlack,accentColor: kYellow,scaffoldBackgroundColor: kBlackHalf,primaryTextTheme: buildTextTheme(base.primaryTextTheme,kWhite),primaryIconTheme: base.iconTheme.copyWith(color: kWhite),buttonColor: kYellow,textTheme: buildTextTheme(base.textTheme,inputdecorationTheme: InputdecorationTheme(
      border: OutlineInputBorder(
        borderSide: BorderSide(color: kYellow)
      ),labelStyle: TextStyle(
        color: kYellow,fontSize: 24.0
      ),),);
}

TextTheme buildTextTheme(TextTheme base,Color color) {
  return base.copyWith(
    body1: base.headline.copyWith(color: color,fontSize: 16.0),caption: base.headline.copyWith(color: color),display1: base.headline.copyWith(color: color),button: base.headline.copyWith(color: color),headline: base.headline.copyWith(color: color),title: base.title.copyWith(color: color),);
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      theme: buildDarkTheme(),home: new HomePage(),);
  }
}

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => new _HomePageState();
}

class _HomePageState extends State<HomePage> {
  String xp = '0';

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        actions: <Widget>[
          new IconButton(
            icon: Icon(Icons.ac_unit),onpressed: () {},)
        ],body: new Container(
        padding: new EdgeInsets.only(top: 16.0),child: new ListView(
          children: <Widget>[
            new InkWell(
              onTap: () {},child: new InputDecorator(
                decoration: new Inputdecoration(          
                  labelText: 'XP',border: OutlineInputBorder()
                ),child: new Row(
                  mainAxisAlignment: MainAxisAlignment.spaceBetween,mainAxisSize: MainAxisSize.min,children: <Widget>[
                    new Text(this.xp),],)
          ],)
    );
  }
}

有关更多参考:

Not able to change TextField Border Color

https://github.com/flutter/flutter/issues/17592

解决方法

像这样添加hintColor到你的主题,它应该更改OutlineInputBorder颜色.

ThemeData buildDarkTheme() {
  final ThemeData base = ThemeData();
  return base.copyWith(
    primaryColor: kBlack,hintColor: YOUR_COLOR,inputdecorationTheme: InputdecorationTheme(
      border: OutlineInputBorder(),);
}

dart – 如何在Flutter中绘制自定义圆角矩形边框(ShapeBorder)?

dart – 如何在Flutter中绘制自定义圆角矩形边框(ShapeBorder)?

我正在尝试扩展ShapeBorder类以添加一些功能.但只是玩涂料方法,我找到了一些我没想到的东西:

enter image description here


边框的角落和矩形的角落似乎不匹配.我使用了以下代码:

class CustomroundedRectangleBorder extends ShapeBorder {

  final double borderWidth;
  final BorderRadius borderRadius;

  const CustomroundedRectangleBorder({
    this.borderWidth: 1.0,this.borderRadius: BorderRadius.zero,})
      : assert(borderRadius != null);

  @override
  EdgeInsetsGeometry get dimensions {
    return new EdgeInsets.all(borderWidth);
  }

  @override
  ShapeBorder scale(double t) {
    return new CustomroundedRectangleBorder(
      borderWidth: borderWidth * (t),borderRadius: borderRadius * (t),);
  }

  @override
  ShapeBorder lerpFrom(ShapeBorder a,double t) {
    assert(t != null);
    if (a is CustomroundedRectangleBorder) {
      return new CustomroundedRectangleBorder(
        borderWidth: ui.lerpDouble(a.borderWidth,borderWidth,t),borderRadius: BorderRadius.lerp(a.borderRadius,borderRadius,);
    }
    return super.lerpFrom(a,t);
  }

  @override
  ShapeBorder lerpTo(ShapeBorder b,double t) {
    assert(t != null);
    if (b is CustomroundedRectangleBorder) {
      return new CustomroundedRectangleBorder(
        borderWidth: ui.lerpDouble(borderWidth,b.borderWidth,borderRadius: BorderRadius.lerp(borderRadius,b.borderRadius,);
    }
    return super.lerpTo(b,t);
  }

  @override
  Path getInnerPath(Rect rect,{ TextDirection textDirection }) {
    return new Path()
      ..addRRect(borderRadius.resolve(textDirection).toRRect(rect).deflate(
          borderWidth));
  }

  @override
  Path getouterPath(Rect rect,{ TextDirection textDirection }) {
    return new Path()
      ..addRRect(borderRadius.resolve(textDirection).toRRect(rect));
  }

  @override
  void paint(Canvas canvas,Rect rect,{ TextDirection textDirection }) {
    rect = rect.deflate(borderWidth / 2.0);

    Paint paint;
    final RRect borderRect = borderRadius.resolve(textDirection).toRRect(rect);
    paint = new Paint()
      ..color = Colors.red
      ..style = PaintingStyle.stroke
      ..strokeWidth = borderWidth;
    canvas.drawRRect(borderRect,paint);
  }
}

并创建矩形如下:

new Container(
              height: 100.0,width: 200.0,padding: new EdgeInsets.all(10.0),decoration: new Shapedecoration(
                color: Colors.black,shape: new CustomroundedRectangleBorder(
                  borderRadius: new BorderRadius.all(new Radius.circular(20.0)),borderWidth: 10.0,),// side: new BorderSide(color: Colors.white)
              ),child: new Center(child: new Text("My Button"),

我觉得Flutter源代码采用了类似的方法,但也许我没有看到任何东西.

编辑
将我的绘画风格更改为PaintingStyle.fill,从而在原始矩形而不是边框​​上绘制一个矩形,我似乎得到了正确的边框:

void paint(Canvas canvas,{ TextDirection textDirection }) {

//    rect = rect.deflate(borderWidth / 2.0);

    Paint paint;
    final RRect borderRect = borderRadius.resolve(textDirection).toRRect(rect);
    paint = new Paint()
      ..color = Colors.red.withOpacity(0.25)
      ..style = PaintingStyle.fill
      ..strokeWidth = borderWidth;
    canvas.drawRRect(borderRect,paint);
  }

我仍然对如何做到这一点感到困惑……

解决方法

你应该使用canvas.drawPath而不是drawRect

Paint paint = new Paint()
  ..color = borderColor
  ..style = PaintingStyle.stroke
  ..strokeWidth = borderWidth;

canvas.drawPath(getouterPath(rect),paint);

如果你只是想要一个边框,它就足以使用了

@override
  Path getInnerPath(Rect rect,{TextDirection textDirection}) {
    return new Path()
      ..fillType = PathFillType.evenOdd
      ..addpath(getouterPath(rect),Offset.zero);
  }

关于flutter ShapeBorder 类的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于asp.net – Shutterfly Order API.、dart – Flutter Error:当前的Flutter SDK版本是2.1.0-dev.0.0.flutter-be6309690f、dart – Flutter – 更改OutlineInputBorder的边框颜色、dart – 如何在Flutter中绘制自定义圆角矩形边框(ShapeBorder)?等相关知识的信息别忘了在本站进行查找喔。

本文标签: