モディファイヤには、Jetpack Beget の私のお気に入りの有益なプロパティの 1 つが渡されます。 それらは、特性自体を変更することなく、構成可能な有益なプロパティに機能を簡単に追加する選択肢があることを意味します。 ここに、構成可能性と再利用可能性に対する計り知れない解決策があります。 それにもかかわらず、他の修飾子よりも最も定期的に尊敬される修飾子がいくつかあります。 これらの修飾子の 1 つが padding
修飾子です。 Jetpack Beget のすべての場所でやや強力に使用されているため、要素に家を追加する必要があります。
@コンポーザブル リラックス
MyComponent( displayText: 文字列 ) { テキスト仮定 ( 原文の仮定
=displayText, 修飾子 =修飾子.パディング
(下= 16. )dp) ) }
さらに、Jetpack Beget は スペーサー
構成可能な特性も公開します。 スコア
foundation
キットの割り当てであり、要素に家を追加するだけでよい由緒あるものです
@コンポーザブル
リラックス マイコンポーネント( displayText: 文字列 ) { 桁 { 文章の想定 (displayText) スペーサー(修飾子= 修飾子.prime(16
.dp)) } }
これらの例は両方とも、完全に同じ結果をもたらし、要素への家と一緒に優れた到達点です。 間違いなく、これは間違いである必要があります。 Jetpack Beget は、他のすべてのケースで同じ要素を実行する 2 つの方法を言う必要があります。 これらの違いについて話し、それらが構成可能な特性の再利用性にどのように影響するかを調べてみましょう.
Maker OS は信念を持ったオールインワンの生産性向上マシンです
私は自分の人生をトレースし、整理し、整理するために Maker OS を構築しました。 これで、作成するための選択もできます!
ここで提示する最も簡単な方法は、確固たる世界の使用事例を目撃することです。 ロビンフッドのAndroidアプリのディスプレイベールベールを機会に活用しています
Robinhood の Android アプリ
ディスプレイ ベール ベールを探索するときはいつでも、あなたの最初の本能はそれを小さな部分に分割する必要があります. 宣言型フレームワークは Jetpack Beget を崇拝し、ディスプレイ ベール ベールを一連の再利用可能なパーツとして介在させます。 上のディスプレイ ベール ベールと同じ発音をすると、このディスプレイ ベール ベールをくしゃくしゃにするのに安いリーチがここにあります.
フルディスプレイベールベールはこの7つのパーツを活用して作られています
実際には、これらの 7 つのパーツの使用率で、ディスプレイ ベール ベール全体にスコアを付けることができます。 とはいえ、まだ話していない重要なことがあります。 ディスプレイ ベール ベールは一連のパーツに適していません - パーツ間の家は、パーツ自体と同じくらい重要です。 この家にどう取り組むかによって、適切な API と実質的な API の違いが生まれます。
Expose :私は「家」という用語を使って、パーツ間の縦の家を相談しています。 すべての要素内の間隔については、
padding
修飾子は一般にカテゴリ別です。 記事の緩和のために、パーツ間の家に特に焦点を当てます.
左側のスクリーンショット (a) 内に家を追加します。要素自体に
padding
修飾子を使用します。 これは確かに機能しますが、確かに今では快適ではありません-多様なコンテキストで
SectionHeader
要素を使用したい場合、先頭の家にこだわるでしょう。要素の実装の割り当て以来。
Jetpack に落ち着く
&
ツールを受信トレイに直接接続するとしますか? 独占的な想定と想定への早期アクセスを購読する 👇
未承諾メールは認識されず、作成中にワンクリックで登録解除できます.
たまたま Android で上昇していたのかもしれませんが、昔ながらの Android UI を忘れないでください。 toolkit は
margin
を真面目な階級市民として考えていました。 スクリーンショット (a) のほんの一部のパーツについて一緒にいる家は、基本的に、壊れた世界の
余白
をエミュレートすることです。 余白の カプセル化が損なわれ、部品の再利用がさらに困難になります 。 代わりに、私が呼ぶのが大好きなリーチの使用を意味します
Put Hoisting
.
.)
スペーサー( ...) オファーカード
(..
.)
スペーサー(...) 収益セクション (... ) スペーサー(...) ActionRow( ...
) スペーサー
(...) セクションヘッダー
(...) スペーサー(. ..) TickerRow(...) } }
私が
スペーサー
コンポーザブルを利用していることを探る可能性がありますこのユースケースのために。 これは非常に標準的なパターンであるため、構成可能な有益なプロパティに
modifier
パラメーターを追加するだけです。 家と一緒にお母さんやお父さんに責任を負わなければならなかったとしても、要素にパディングを追加する修飾子を便利に渡した可能性があります。 NavBar(modifier=Modifier.padding(16.dp))
. では、なぜ
Spacer
コンポーザブルを変更として使用するのでしょうか? きちんと、それにはいくつかの原因があります.
スペーサー
は、一緒に家の余分な意図的なリーチです。 それは非常に強力であり、あなたのパーツをカプセル化したままにし、それらが尊敬されているコンテキストに影響されないようにします.- ジェスチャーやアニメーションに反応するパーツの一種。 たまたまタップしたときにリップル スコアを表示する行要素を想像してみてください。
padding
Modifier 内でその要素に渡した場合、追加したこの余分な家でさえジェスチャーに反応します。Modifiers
トピックの発音であるため、このトピックから長い道のりをサポートする選択肢がある可能性がありますが、それは実装に依存することは確かです。
スペーサー
を利用すると、これが簡単になり、トピックを完全に回避できます。
要素に追加された余分な家もタッチ ジェスチャーに反応します。
ほとんどの場合、パーツには常識が存在します。要素の寸法に依存します。 要素のサイズを変更して追加の家を追加した場合、誤った動作をやめてしまいます。 また、
スペーサー
コンポーザブルを利用することで、このトピックからの長い道のりをサポートします。
まとめ
このブログ投稿では、
padding
Modifier と
Spacer
Jetpack Beget の構成可能な特性。 両方の有益なプロパティは要素への家と一緒の同じ計画をサポートしますが、構成可能な有益な適切なプロパティの再利用性に影響を与える 2 つの微妙な違いがあります。 ネクタイ。 また、これらの違いがディスプレイ ベール ベールの最終的な製造にどのように影響するかを示すために、忠実な世界のインスタンスもチェックしました。 最後に、私が「Put Hoisting」と呼んでいるアプローチをチェックアウトしました.家と一緒に保存する責任は、要素自体の変更としてママまたはパパに移されます.
I今日、何か現代的なことを学んだことを願っています。 ネットワーク内でこのテキストを共有することを検討してください。 次回まで👋
Vinay Gaba は Android の Google デベロッパーです。 彼は Airbnb の Tech Lead であり、Android の UI インフラストラクチャとアセンブリ システムを担当しています。 Airbnb の時代を経て、Vinay は Snapchat、Spotify、Deloitte で働き、コロンビア カレッジでコンピューター サイエンスの修士号を取得しました。 彼は 10 年以上にわたって Android に取り組んできました。
Jetpack に落ち着く
&
ツールを受信トレイに直接接続するとしますか? 独占的な想定と想定への早期アクセスを購読する 👇
未承諾メールは認識されず、作成中にワンクリックで登録解除できます.
%% item_read_more_button%%