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 つの簡単な方法の詳細な説明

推薦する

MySQLアカウントのIP制限条件を変更する方法

序文最近、仕事で、MySQL ユーザーの権限を変更するには、特定の IP アドレスへのアクセスを制限...

CentOS6で定期的にjarプログラムを実行するスクリプトをcrontabで実行する

1. 簡単なJavaプログラムを書く パブリッククラステストシェル{ パブリック静的voidメイン(...

JavaScriptで継承を実装するいくつかの方法

目次構造継承(callで実装)プロトタイプチェーン継承(プロトタイプチェーンの助けを借りて実装)複合...

MySQL での置換例の詳細な説明

MySQL での置換例の詳細な説明replace into は insert と似ていますが、rep...

一般的な Dockerfile コマンドの使用方法の紹介

目次01 CM 02 エントリーポイント03 ワークディレクトリ04 環境05 ユーザー06巻07 ...

選択ドロップダウンボックスの値をIDに渡してコードを実装する方法

完全なコードは次のとおりです。 HTMLコード:コードをコピーコードは次のとおりです。 <!-...

Windows 上で Zookeeper サーバーを構築するチュートリアル

インストールと設定Apacheの公式ウェブサイトには多くのミラーダウンロードアドレスが用意されており...

MySQL での GROUP_CONCAT の使用例の分析

この記事では、例を使用して、MySQL で GROUP_CONCAT を使用する方法について説明しま...

MySQL マルチバージョン同時実行制御 MVCC の詳細な研究

MVCC MVCC (Multi-Version Concurrency Control) は、マル...

nginxで静的リソースを公開する方法

ステップ準備した静的リソースファイルを指定されたフォルダに配置しますnginx 設定ファイルを変更す...

MySQL におけるデフォルトの使用法の詳細な説明

NULL および NOT NULL 修飾子、DEFAULT 修飾子、AUTO_INCREMENT 修...

MySQL の最初のインストールが成功した後にパスワードを初期化する手順

ファイルをディレクトリに解凍しますこれは解凍後のディレクトリですmy.iniファイルを入力しますダブ...

ウェブデザイナー職の面接でよくある質問と回答

1. ASP.NET Web アプリケーションのテンプレートとは何ですか? それらの違いは何ですか?...

マークアップ言語 - テキストの CSS スタイルを指定する

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

MySQLはinit-connectを使用してアクセス監査機能の実装を増やします

まず init-connect を通じて mysql 接続を初期化し、次にインスタンスに接続する必要...