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を使用してプログレスバー効果を実現し、動的にパーセンテージを追加する

推薦する

MySQL ビューの原則分析

目次更新可能なビュービューのパフォーマンスビューの制限ビューは MySQL 5.0 以降で導入されま...

スクロール時に選択領域のフォント色を暗くするために CSS を使用するサンプルコード

日付ピッカーをカプセル化する場合、選択時にフォントの色を暗くする必要があります。実装後の効果を見てみ...

CSS カウンターを使用して数字の順序付きリストを美しく表示する方法

Web デザインでは、Web サイトに表示されるデータの構造とコンテンツをユーザーが明確に理解できる...

Docker での Jenkins と Docker を使用した継続的デリバリー

1. 継続的デリバリーとは何かソフトウェア製品の出力プロセスは、ソフトウェアがいつでもリリースできる...

jsネイティブ構文プロトタイプ、__proto__、コンストラクタの徹底的な理解

目次1 はじめに2 前提条件2.1 データ型2.2 それが自身のプロパティであるかどうかを判断する ...

MySql カンマ連結文字列クエリの 2 つの方法

次の2つの関数は、 FIND_IN_SETと同じように使用されます。使用する場合、 FIND_IN_...

MySQL データ挿入最適化メソッドconcurrent_insert

スレッドがテーブルに対して DELAYED ステートメントを実行するときに、そのようなハンドラーが存...

jQuery は拡張アニメーションによるナビゲーション バー効果を実装します

展開アニメーション効果のあるナビゲーションバーを設計してカスタマイズし、デモを作成してみました。設計...

mysql5.7.21 の異常起動を修正する方法

同僚から、停電のため MySQL インスタンスを起動できないという報告がありました。 innodb_...

nodejs + koa + typescript の統合と自動再起動に関する問題

目次バージョンノートプロジェクトを作成する依存関係をインストールするコンテンツの記入src/serv...

MySQLデータベースは重複データを削除し、メソッドインスタンスを1つだけ保持します

1. 問題の紹介ユーザー テーブルに 3 つのフィールドが含まれているシナリオを想定します。 id、...

Docker で Springboot プロジェクトを実行する実装

導入: springboot プロジェクトを実行する Docker の構成は実は非常にシンプルで、L...

vueプロジェクトは特定の領域に透かしを描くことを実現する

この記事では、Vueを使用して特定の領域に透かしを描く方法を紹介します。具体的な内容は次のとおりです...

Vue+Elementバックグラウンド管理フレームワークの統合実践

目次Vue+ElementUI バックグラウンド管理フレームワークでは、ElementUI とは何で...

MySQLは集計関数を使用して単一のテーブルをクエリします

集計関数データセットに作用し、そのデータセットの値を返します。 count: 統計結果のレコード数。...