Androidはすべての上にビューをオーバーレイする?
質問
アンドロイドでは、すべてのものの上にビューを重ねることができるのですか?
iPhoneでは、新しいビューは、その
frame.origin
を (0,0) に設定し、その幅と高さを
self.view
. に追加する。
self.view
を追加すると、それがオーバーレイとして動作し、後ろのコンテンツを覆います(または、それが透明な背景を持っていた場合、後ろのビューを表示します)。
アンドロイドで同じようなテクニックがあるのでしょうか?私は、ビューがわずかに異なる(relativelayout、linearlayout、framelayoutの3種類(またはそれ以上...)がある)ことを理解していますが、すべての上にビューを無差別にオーバーレイする方法はあるのでしょうか?
どのように解決するのですか?
単純に
RelativeLayout
または
FrameLayout
. 最後の子ビューは、他のすべてをオーバーレイします。
Androidは、Cocoa Touch SDKにはないパターンをサポートしています。レイアウト管理です。
レイアウト
iPhoneのレイアウトは、すべてを絶対的に配置することを意味します(いくつかのストリーチ要素を除く)。アンドロイドのレイアウトは、子プロセスが互いに関連して配置されることを意味します。
例(2つ目のEditTextが1つ目のEditTextを完全に覆ってしまう)。
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/root_view">
<EditText
android:layout_width="fill_parent"
android:id="@+id/editText1"
android:layout_height="fill_parent">
</EditText>
<EditText
android:layout_width="fill_parent"
android:id="@+id/editText2"
android:layout_height="fill_parent">
<requestFocus></requestFocus>
</EditText>
</FrameLayout>
FrameLayout
はある種のビュースタックです。特殊なケースのために作られました。
RelativeLayout
はかなり強力です。以下のようなルールを定義することができます。
ビューAは親レイアウトを下に配置しなければならない
,
ビュー B は A を下から上に整列させなければならない
など
コメントによる更新
通常、コンテンツを設定するには
setContentView(R.layout.your_layout)
で
onCreate
を追加します (レイアウトを膨らませてくれます)。これを手動で行い
setContentView(inflatedView)
を呼び出すことができますが、違いはありません。
ビュー自体は単一のビューかもしれません(例えば
TextView
のような)単一のビューであったり、複雑なレイアウト階層(すべてのレイアウトはそれ自体がビューであるため、ネストされたレイアウト)であったりします。
を呼び出した後
setContentView
を呼び出すと、アクティビティはそのコンテンツがどのようなものかを知り、そのコンテンツに対して
(FrameLayout) findViewById(R.id.root_view)
を使って、この階層内の任意のビューを取得することができます (一般的なパターン
(ClassOfTheViewWithThisId) findViewById(R.id.declared_id_of_view)
).
関連
-
無効なメソッド宣言
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] AndroidでPythonを実行する方法はありますか?
-
[解決済み] EclipseのAndroidプラグインで "Debug certificate expired "エラーが発生する。
-
[解決済み] Androidで画面の大きさをピクセル単位で取得する方法
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み】ConstraintLayoutをパーセント値で動作させる方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
スレッド "main "での例外 java.util.NoSuchElementException in Java 問題解決済み
-
アクセス制限です。タイプ 'JPEGCodec' は API ではない ☞My Blog Github ☜ ホームページを見る
-
Java の switch case 文で必要な定数式の問題の解決法
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException:5 エラー
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
Javaがテキストファイルを読み込む
-
Java appears タイプEを囲むインスタンスがアクセスできない。
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
春ブート複数のデータソースの管理(atomikos)同じサーバーホスト上の複数のプロジェクトを開始する複数のJava - jarのエラーソリューション