6つのレイアウトでのFrameLayoutの使用

6つのレイアウトでのFrameLayoutの使用

序文

前回はLinearLayoutについて説明しました。今回はFrameLayoutの使い方を説明します。他のレイアウトと比較すると、FrameLayoutは最もシンプルなレイアウトと言え、使用範囲も比較的狭いですが、Androidの6大レイアウトの1つでもあります。面接でも何度か遭遇するので、さっそく学習してみましょう~

導入

FrameLayout では、このレイアウトは画面上に空白領域を直接開きます。このレイアウトに追加されたすべてのビューは積み重ねられて表示され、デフォルトではこれらのビューがこの領域の左上隅に配置されます。レイアウトに追加された最初のビューは下部に表示され、最後のビューは上部に配置されます。前のレイヤーのビューが次のレイヤーのビューをカバーするため、レイアウトはスタック レイアウトに似たものになり、そのため FrameLayout はあまり使用されません。

1. 共通の属性

FrameLayout には共通する属性が 2 つだけあります。

2 つのプロパティ:

  • android:foreground: フレームレイアウトコンテナの前景画像を設定します
  • android:foregroundGravity: 前景画像の表示位置を設定します

前景画像: 常にフレーム レイアウトの上部にあり、ユーザーに直接面しており、隠れることのない画像です。

この説明だけでは分からない方もいるかと思いますので、実際の操作で直感的に感じて頂けるように説明していきます!

上の写真を見ると、背景はその名の通り、背景を設定するものであることがわかります。では、前景とは何でしょうか? 友人たちはすでにいくつかのアイデアを持っていると思います。引き続き下を見ていきましょう。

上の図を読んだ後、前景画像が何であるかを完全に理解できたと思います。同じコードで、背景を前景に変更するだけです。図 1 では HelloWord がまだ表示されていますが、図 2 ではブロックされていることがわかります。これを単純に理解すると、前景は実際には本の表紙であり、本の内容すべてをカバーしています。

2. FrameLayout はサブビュー (TextView など) の位置をどのように設定しますか?

layout_gravity で値を設定し、layout_marginTop と layout_marginLeft で位置を設定します。

たとえば、4 つの TextView があり、最初のレイヤーは会社、2 番目のレイヤーはオフィス、3 番目のレイヤーはワークステーション、4 番目のレイヤーはプログラマーです。 TextView の位置が設定されていない場合、デフォルトでは 4 つの単語が左上隅に表示され、会社が下部、プログラマが上部に表示されます。図の 4 つの画像の位置効果を実現するための対応する設定は次のとおりです。

(1)第一層 会社:android:layout_gravity="center"

(2)2層目のオフィス: android:layout_gravity = "center" android:layout_marginTop="-150dp" (注:android:layout_gravity = "center" は水平方向と垂直方向の中央揃えを意味するため、負の数になります。ベースラインは水平方向と垂直方向のビューの中点です。オフィスはベースラインより上(負の方向)にあるため、負の数になります)

(3)第3レベル:android:layout_gravity="top" android:layout_marginTop="40dp" android:layout_marginLeft="40dp'(注:android:layout_gravity="top"は垂直方向の上揃えを意味し、水平方向の配置はデフォルトで左揃えになります)

(4)第4レベルのプログラマー:android:layout_gravity="center" android:layout_marginTop="80dp"(第2レベルのオフィスの分析に対応して、プログラマーがベースライン(正方向)より下にあるため、数値が負になっていることは簡単に理解できます。また、注意:ここでのベースラインは画面の上部ではなく、それぞれ水平方向と垂直方向の中心線です)

最終的な効果は次のようになります。

結論

これで、FrameLayout の紹介は終わりです。今日の記事の内容があまり多くないと思われる方もいらっしゃるかもしれませんが、それは主に、FrameLayout が実際のプロジェクトで使用されることはほとんどなく、誰もが簡単に理解できれば十分だからです。しかし! ! !一緒に学び始めてから 1 週間が経ちました。まだ最初のプロジェクトを作成していない生徒も数人いると思いますので、すぐに行動を起こして、今週の素晴らしいコンテンツをすべて最初の個人デモに書き込んでください。実際の実践で私たちをフォローしている友人の皆さんも、以前の記事を見直していただければ幸いです。孔子は言いました。「時々学び、実践することは楽しいことではないでしょうか?」 〜

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  docker を使用して Spring Boot をデプロイし、Skywalking に接続する方法

>>:  vscode で console.log を書く 2 つの簡単な方法の詳細な説明

推薦する

「いいね!」文がインデックスに登録されないのはなぜですか?

序文この記事は、最も人気のある言語で最も退屈な基礎知識を説明することを目的としていますこのトピックは...

SQL文におけるGROUP BYとHAVINGの使用に関する簡単な説明

GROUP BY 句と HAVING 句を紹介する前に、まず SQL 言語の特殊な関数である集計関数...

Reactでwindow.print()を使用した際にページが応答しなくなる問題の解決記録について

目次1. 問題の背景: 2. 問題の原因: 3. 問題解決:要約: 1. 問題の背景: window...

MySQL のフィールドに一意のインデックスを追加および削除する方法

1. PRIMARY KEY(主キーインデックス)を追加するmysql>ALTER TABLE...

Vueはテーマ切り替えのための複数のアイデアを実装します

目次テーマを動的に変更する最初の方法: 動的コンポーネント2番目の方法はルーティング分離です要約する...

MySQLデータベースのマスタースレーブ同期の実際のプロセスの詳細な説明

目次インストール環境の説明MySQLデータベースサービスをインストールするメインライブラリを構成する...

シェルで文字列内のスペースや指定された文字を削除する方法

インターネット上には、正しい方法であっても、使用しても正しい結果が得られない方法が数多くあります。正...

ノード スキャフォールディングを使用してトークン検証を実装するサーバーを構築する方法

コンテンツスキャフォールディングを使用してノードプロジェクトを素早く構築するデータベースとやり取りす...

docker-composeの詳細なインストールと使用方法

Docker Compose は、複雑なアプリケーションを定義および実行するための Docker ツ...

Zabbix と bat スクリプトを組み合わせて複数のアプリケーションの状態を監視する方法

シナリオシミュレーション:国内企業の中には、重要な業務をサポートするために特定のウィンドウ プログラ...

IE8を閲覧するときにウェブサイトが自動的にIE7互換モードを使用するようにする

序文IE の将来のすべてのバージョンで Web ページの外観が一貫していることを保証するために、IE...

HTML の隠しフィールドの紹介と例

基本的な構文: <input type="hidden" name=&qu...

MySQL パフォーマンス チューニングについて知っておくべき 15 個の重要な変数 (要約)

序文: MYSQL は最も人気のある WEB バックエンド データベースです。最近、NOSQL がま...

HTMLとは何ですか?

HTML 開発の歴史: HTML は英語で Hypertext Marked Language の...

CSS ボーダーは四隅の実装コードを追加します

1.html <div class="ログインボディ"> <...