web-dev-qa-db-ja.com

FrameLayoutは何をしますか?

プログラミングは初めてです。グラフィカルレイアウトを使用していたので、xmlファイルを読み込んでいたときに、FrameLayoutが表示されました。次に検索しましたが、有用なものが見つかりませんでした。 FrameLayoutとは何ですか?

60
Amin Ghasemi

FrameLayoutを使用して、子ビューを互いの上にスタックし、最新の子をスタックの上にスタックします。以下の例では、TextViewは最新のものであるため、ImageViewの上に自動的に配置されます。

例えば:

<FrameLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:orientation="vertical">

    <ImageView
        Android:id="@+id/backgroundImage"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:scaleType="centerCrop"
        Android:src="@drawable/bitmapie" />

    <TextView
        Android:id="@+id/descTextView"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="center_vertical"
        Android:layout_marginTop="70dp"
        Android:background="@Android:color/holo_blue_light"
        Android:padding="10dp"
        Android:text="TextView placed at the top of the Imageview"
        Android:textColor="@Android:color/white"
        Android:textSize="22sp" />

</FrameLayout>

出力:

enter image description here

122

FrameLayoutは、単一のアイテムを表示するために画面上の領域をブロックするように設計されています。一般に、FrameLayoutは、単一の子ビューを保持するために使用する必要があります。子が互いに重なり合わないように、さまざまな画面サイズにスケーラブルな方法で子ビューを整理することは難しいためです。ただし、Android:layout_gravity属性を使用して各子に重力を割り当てることにより、FrameLayoutに複数の子を追加し、FrameLayout内の位置を制御できます。

子ビューはスタックに描画され、最後に追加された子が上に表示されます。

enter image description here

FrameLayoutを使用するもう1つの一般的なアプローチは、Fragment containerです

続きを読む こちら

29
yoAlex5

グーグルでよろしいですか?

フレームレイアウトは、画面上の領域をブロックして単一のアイテムを表示するように設計されています。通常、FrameLayoutは単一の子ビューを保持するために使用する必要があります。子が互いに重なり合わないように、さまざまな画面サイズにスケーラブルな方法で子ビューを整理することは難しいためです。

ただし、複数の子をFrameLayoutに追加し、Android:layout_gravity属性を使用して各子に重力を割り当てることにより、FrameLayout内の位置を制御できます。

FrameLayoutの秘密は、子をどのようにレイアウトするかです。通常は1つのアイテムを含むように設計されていますが、他の要素を上に積み重ねることができます。したがって、FrameLayoutは基本的に、画面上のビューのZオーダーを操作する方法です。

これは、HUDのような要素からスライドパネル、さらに複雑なアニメーション化されたトランジションまで、いくつかのUIトリックに非常に役立ちます。この投稿では、それらのそれぞれの例を参照します。

FrameLayoutは、一度に1つのアイテムを表示するように設計されています。 FrameLayout内に複数の要素を含めることができますが、各要素は画面の左上に基づいて配置されます。重なる要素は重なって表示されます。 FrameLayoutを使用して、これがどのように機能するかを示す簡単なXMLレイアウトを作成しました。

19
Metehan

Word frameは通常のフォトフレームと見なすことができます。そのフレームで何をしますか?そのフレームに写真を上から順に配置できます。 FrameLayoutと同じように、ビュー(任意のレイアウト、またはボタン、テキスト、画像などのウィジェット)を他の上部に配置できます@ ojonugwaは、画像のtextview上部を表示します。

19
Asif Mushtaq

基本的に、たとえば、あるビューを別のビューの上に配置します。

画像のテキストを膨らませる

  <FrameLayout>

<ImageView>
<Textview>

  </FrameLayout>
5
KOTIOS