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

推薦する

CentOs7 64 ビット MySQL 5.6.40 ソースコードのインストール プロセス

1. インストールプロセス中に問題が発生しないように、まず依存パッケージをインストールします。 [r...

一般的な Nginx のテクニックと例の概要

1. 複数サーバーの優先順位たとえば、各サーバー ブロックがポート 80 をリッスンする場合、www...

CentOS 7.6 仮想ネットワーク カードのバッチ追加、変更、削除操作の紹介

1 カーネルにtunモジュールがあるかどうかを確認する modinfo tun modprobe t...

MySQL 起動エラーを解決する: エラー 2003 (HY000): 'localhost' の MySQL サーバーに接続できません (10061)

このエラーは初心者によく発生します。この記事では主に、エラー 2003 (HY000): '...

Vueでデータ例を定義する方法

序文開発プロセスにおいて、変数の定義は非常に頻繁かつ基本的なタスクです。変数の使用シナリオと範囲に応...

Vue ElementUI フォームのフォーム検証

フォーム検証は、フロントエンド開発プロセスで最もよく使用される機能の 1 つです。私の個人的な仕事経...

Reactフックとzarmコンポーネントライブラリ構成に基づいてh5フォームページを開発するためのサンプルコード

最近、React Hooks を zarm コンポーネント ライブラリと組み合わせて使用​​し、js...

React Native APPのアップデートに関する簡単な説明

目次アプリ更新プロセス大まかなフローチャートアプリ情報の更新1. まず取得する必要があるファイルアド...

VueでTypeScriptを使用する方法

導入近年、TypeScript を求める声がますます高まり、TypeScript はフロントエンドに...

データベース復旧エラーの原因となる MySQL 文字セットの簡単な分析

MySQL の文字セットエンコーディングが正しくないデータをインポートすると、エラーが表示されます。...

MySQL 5.6 マスタースレーブエラー報告の実践記録

1. 問題の症状バージョン: MySQL 5.6、従来の binlog ファイルと pos 方式を使...

Angularデータバインディングとその実装の詳細な説明

目次序文データバインディングとは何ですか? Angular のデータバインディングの種類一方向データ...

MySQL 8.0 のインストール中に発生した 3 つの小さなエラーの概要

序文これまで当社ではMySQLの5.7シリーズを使用していましたが、バージョン8.0のリリースに合わ...

MySQL Innodbインデックスの原理の詳細な説明

導入振り返ってみると、4年前、私がMySQLのインデックスについて学んでいたとき、先生はインデックス...

Docker の詳細なイラスト

1. Dockerの紹介1.1 仮想化1.1.1 仮想化とは何ですか?コンピュータにおける仮想化とは...