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

推薦する

Centos8.3、dockerデプロイメントspringbootプロジェクトの実際のケース分析

導入現在、k8s は非常に人気があり、それについて学ぶために本を購入しました。しかし、k8s では数...

MYSQL大規模書き込み問題の最適化の詳細な説明

概要: MySQL のパフォーマンス最適化について話すとき、誰もがクエリ パフォーマンスを向上させる...

ウェブサイトのデザインでは色の階層感覚に注意を払う必要があります

最近、私はデザインには階層感覚が必要だと言っています。この階層感覚には、色の重ね合わせや要素の重ね合...

XHTML チュートリアル、XHTML の基礎を簡単に紹介します

<br />この記事では、XHTMLとXHTMLの基礎知識について簡単に紹介します。 X...

Tomcatでcatalina.batがUTF-8に設定されている場合、コンソールに文字化けした文字が表示されます

1. catalina.bat は UTF-8 に設定する必要があります。UTF-8 に設定しないと...

初心者向け入門講座⑧:記事サイトを簡単に作る

前回の投稿では、Web ページの作成方法について説明しました。Web サイトは多くの Web ページ...

Windows 10 に Apache 2.4.41 をインストールするチュートリアル

1. Apache 2.4.41 のインストールと設定最初のステップは、以下に示すように、https...

単一のMySQLテーブルを復元する手順

休憩中に、眠気を完全に吹き飛ばす電話がかかってきました。「開発者が更新 SQL を書くときに whe...

MacOS に MySQL 8.0 をインストールして MySQL にログインする方法

公式チュートリアルに従って、インストール パッケージをダウンロードし、[インストール] をクリックし...

JSコンストラクタとインスタンス化およびプロトタイプ導入の関係

目次1. コンストラクタとインスタンス化2. コンストラクターとインスタンス化の関係は何ですか? 3...

Windows での MySQL の詳細なインストール手順と基本的な使用方法

目次1. MySQLをダウンロードする2. MySQLをインストールする3. MySQL の基本的な...

Linux 上でプロジェクトをリリースするために Tomcat を展開するプロセスにおけるさまざまな問題と解決策

プロジェクトをプロジェクトサイトのテスト環境にデプロイするJDK1.8トムキャット8.5 Maven...

MySQL 8.0 のユーザーとロールの管理原則と使用方法の詳細

この記事では、MySQL 8.0 のユーザーとロールの管理について例を挙げて説明します。ご参考までに...

Vscode が Ubuntu にリモート接続する際のエラー問題の解決方法

1. 事件の背景:仕事上、Ubuntu への vscode リモート接続を使用する必要があります。 ...

MySQLデータベースのトランザクションとインデックスの詳細な説明

目次1. 事務:取引の 4 つの主な特徴:同時トランザクションはどのような問題を引き起こしますか? ...