Vue.js スタイルレイアウト Flutter ビジネス開発共通スキル

Vue.js スタイルレイアウト Flutter ビジネス開発共通スキル

シャドウスタイルにおけるフラッターとCSSの対応

UIによって指定されたCSSスタイル

幅: 75px;
高さ: 75px;
背景色: rgba(255, 255, 255, 1);
境界線の半径: 4px;
ボックスの影: 0px 0.5px 5px 0px rgba(0, 0, 0, 0.08);

フラッタースタイルのレイアウト

容器(
      制約: BoxConstraints.tightFor(幅: 75, 高さ: 75),
      マージン: EdgeInsets.only(左: 0.5、右: 0.5、上: 0.5、下: 3)、
          // 影のレイアウト装飾: BoxDecoration(
        色: WBColors.white、
        境界半径: 境界半径.circular(8),
        ボックスシャドウ: [
          ボックスシャドウ
            色: Color.fromRGBO(0, 0, 0, 0.08)、
            オフセット: オフセット(0, 0.5)、
            ぼかし半径: 5,
            拡散半径: 0
          )
        ]
      )、
      配置: Alignment.center、
      子供: ...、
    )

対応

財産css (ボックスシャドウ)フラッター(ボックスシャドウ)
オフセット最初の2つの値オフセット: オフセット(0, 0.5)
ぼかし半径3番目の価値ぼかし半径: 5,
拡散半径4番目の価値拡散半径: 0
RGBA(0, 0, 0, 0.08) です色: Color.fromRGBO(0, 0, 0, 0.08)

テキストボックスの境界線処理

UIによって与えられたCSSスタイルは次のとおりです

幅: 335ピクセル;
高さ: 138px;
境界線: 0.5px 実線 rgba(230, 230, 230, 1);
境界線の半径: 10px;

Flutterは次のように処理します

テキストフィールド(
  キーボードタイプ: TextInputType.multiline、
  コントローラー: textareaController、
  最大行数: 7,
  最大長: 200,
  デコレーション: InputDecoration(
      // H5 ヒントテキストのプレースホルダー: '顧客の名前を入力するにはクリックしてください...',
      //テキストの内側の境界線の距離 contentPadding: 14.0,
      //選択されていない色 enabledBorder: OutlineInputBorder( 
        境界半径: 境界半径.円形(5.0)、
        ボーダーサイド: ボーダーサイド(色: カラー(0xFFEAEAEA), 幅: 0.5),
      )、
      //選択時の外側の境界線の色 focusedBorder: OutlineInputBorder( 
        境界半径: 境界半径.円形(5.0)、
        ボーダーサイド: ボーダーサイド(色: カラー(0xFFEAEAEA), 幅: 0.5),
      )、
      ヒントスタイル: テキストスタイル(
        フォントサイズ: 14,
        フォントファミリー: 'PingFangSC-Medium'、
        色: 色(0xFFCCCCCC)、
      )、
      カウンターテキスト: ''、
  )、
  onChanged: (イベント) {
    /// 入力ボックスをリッスンし、入力ボックスの値を返します。model.callback(event);
  } 、
)

通常 1 行の CSS で実行できるこの種のコードは、Flutter では複雑なスタイル処理が必要になり、エラーが発生しやすくなることがあります。デフォルトでは、Flutter はシステムの青い境界線を使用します。適切な API を見つけずに境界線の色を変更するのは困難です。

グラデーションボタンレイアウト

UI に指定された CSS スタイル

幅: 335ピクセル;
高さ: 46px;
背景: linear-gradient(98deg, rgba(242, 82, 40, 1) 0%,rgba(242, 82, 40, 1) 14.0000000000000002%,rgba(252, 175, 60, 1) 94%,rgba(252, 175, 60, 1) 100%);
境界線の半径: 23px;

フラッターレイアウトスタイル

容器(
  高さ: 46,
  幅: UIScreen.screenWidth()-30,
  デコレーション: BoxDecoration(
    グラデーション: LinearGradient(色: [
      色(0xFFF25228)、
      色(0xFFFCAF3C)、
    ]、開始: FractionalOffset(0, 1)、終了: FractionalOffset(1, 0))、
    境界半径: 境界半径.円形(23)、
  )、
  子: FlatButton(
      押されたとき: (){
        /// ボタンをクリックしてポップアップ ウィンドウを閉じます callback();
      },
      子: テキスト(
        「車の状態を確認しましたので、すぐに引き取りに伺います」
        スタイル: テキストスタイル(
            色: 色(0xFFFFFFFF)、
            フォントファミリー: 'PingFangSC-Semibold'、
            フォントサイズ: 15,
            フォントの太さ: FontWeight.w700
        )、
      )
  )、
)

H5 では、1 行のスタイル コードでこれを行うことができますが、Flutter では、Container コンポーネントの装飾プロパティを使用して背景のグラデーションを設定する必要があります。

Android スクロール コンポーネントを下にスクロールするときの水の波紋効果を削除します

一部のビジネスでは、ページの中央に SingleChildScrollView スクロール コンポーネントを使用している場合、下に引っ張ると波紋が表示されます。私の意見では、これは非常に醜く、ページの外観に影響を与えます。では、これを削除するにはどうすればよいですか? 具体的な操作は次のとおりです。

'package:flutter/material.dart' をインポートします。
/// NoShadowScrollBehavior をカスタマイズして、Android の水の波紋効果を削除します。class NoShadowScrollBehavior extends ScrollBehavior {
  @オーバーライド
  ウィジェットbuildViewportChrome(BuildContextコンテキスト、ウィジェットの子、AxisDirection axisDirection) {
    スイッチ(getPlatform(コンテキスト)){
      TargetPlatform.iOSの場合:
      TargetPlatform.macOSの場合:
        子を返します。
      TargetPlatform.androidの場合:
      TargetPlatform.fuchsiaの場合:
      TargetPlatform.linuxの場合:
      TargetPlatform.windowsの場合:
        GlowingOverscrollIndicator を返します(
          子供: 子供、
          // 頭水波紋を表示しない showLeading: false,
          // 後続の水波紋を表示しない showTrailing: false,
          軸の方向: 軸の方向、
          色: Theme.of(context).accentColor、
        );
    }
    null を返します。
  }
}
//ScrollConfigurationを呼び出す(
    動作: NoShadowScrollBehavior(),
    子: SingleChildScrollView(
      // 物理: NeverScrollableScrollPhysics(),
      子: 列(
        子: <ウィジェット>[
          ボタンラジオを構築(コンテキスト)、
          ビルド条件(コンテキスト)、
          SizedBox(高さ: 100,)
        ]、
      )、
    )
);

上記は、vue.js スタイルのレイアウトで Flutter ビジネス開発を行う際によく使われるテクニックの詳細です。Flutter ビジネス開発スタイルのレイアウトテクニックの詳細については、123WORDPRESS.COM の他の関連記事もご覧ください。

以下もご興味があるかもしれません:
  • Flutterは複数のレイアウトリストのサンプルコードを実装します
  • Flutter でよく使われるレイアウトとイベントの例の詳細な説明
  • Flutter TabLayoutレイアウトの使用方法の詳細な説明
  • Flutter 学習: 構築、レイアウト、描画の 3 部作
  • Flutterレイアウトモデルのスタッキング配置

<<:  Webフロントエンドのパフォーマンス最適化

>>:  CSS3を使用してプログレスバー効果を実現し、動的にパーセンテージを追加する

推薦する

Vueは小さなメモ帳機能を実装しました

この記事の例では、メモ帳の小さな機能を実現するためのvueの具体的なコードを参考までに共有しています...

JS で配列をループする 4 つの方法のまとめ

この記事では、配列を走査する 4 つの方法を比較してまとめます。 for ループ: for (let...

0.1秒の価値!フロントエンドのウェブページの高速化の問題について簡単に説明します

私が現在の仕事の面接を受けたとき、リーダーが真剣にこう言っていたのを覚えています。「今の世の中はイン...

Vueはフォーム検証機能を実装します

この記事では主に、NUXT の validate メソッドに基づいてフォーム検証を実装する方法につい...

vite を使用して vue3 アプリケーションを構築する方法

1. インストールヒント: 現在、VUE3.0 の公式翻訳ドキュメントはありません。しかし、すでに誰...

ウェブページのメモリとCPU使用量を削減する方法

<br />Web ページによっては、サイズは大きくないように見えても開くのに非常に時間...

ウェブページを作るときに知っておくべきいくつかのスキル

1. IE6 では z-index が無効です。 CSS では、階層を変更するために z-index...

理論の普及——ユーザーエクスペリエンス

1. 概念分析 1: UE ユーザー エクスペリエンス <br />英語ではユーザー エ...

PSを使用して2分でxhtml+cssウェブサイトのホームページを作成します

xhtml+css のウェブサイト再構築、ウェブ標準などについては、記事が多すぎるので繰り返しません...

Alibaba Cloud CentOS 7 に MySQL 8.0.13 をインストールする方法

1. MySQL インストール パッケージをダウンロードします(ここにはコツがあります。おそらく、こ...

ウェブデザインでテキストのサイズを合わせる方法: 小さなテキスト、大きな体験

iPadなどのモバイル端末の普及により、人々がモバイル端末で読書に費やす時間はますます長くなり、読...

Docker Tomcat のアクセス インターフェイスが表示されないのはなぜですか?

質問:オリジン サーバーはターゲット リソースの表現を見つけることができないか、既存の表現を公開した...

GaussDB for MySQL パフォーマンス最適化の詳細な説明

目次背景インスピレーションは人生から生まれる速達配送の最適化原則GaussDB の最適化 (MySQ...

MySQL 5.7.23 解凍バージョンのインストールチュートリアル(画像とテキスト付き)

MySQLインストーラをダウンロードする公式ダウンロードアドレス: http://dev.mysq...

JavaScript を使用したコマンドライン アプリケーションの構築

目次1. ノードをインストールする2. Commander.jsをインストールする3. JavaSc...