FrameLayout은 무엇을합니까?


97

저는 프로그래밍이 처음입니다. 그래픽 레이아웃을 사용하고 있었는데 xml 파일을 읽을 때 FrameLayout을 보았습니다. 그런 다음 검색했지만 유용한 것을 찾을 수 없었습니다. FrameLayout은 무엇이며 어떤 역할을합니까?



13
예, 거기에 있었지만 이해할 수있는 sth를 찾을 수 없었습니다.
아민 가세

답변:


196

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>

산출:

여기에 이미지 설명 입력


42
나는 그들의 출력으로 코드를 보는 것을 좋아합니다. 감사합니다! 찬성. 또한 거기에서 만든 디자인이 마음에 듭니다. 간단하지만 아주 좋습니다!
Tarik

3
매우 간단하고 강력하지만 쉬운 설명-감사합니다 @ojonugwaochalifu!
Coder Absolute

2
아주 좋은 설명입니다. 나도 공식 페이지에서 '개발자 설명'을 읽고 '위에'라는 문구가 화면 상단을 더 의미한다고 생각했습니다. 당신의 설명은 나를 위해 "상단"클릭의 3D 특성을 만들었고 이제 나는 그것을 얻습니다. 대단히 :) 감사
슬라 티 바트 패스트

1
@ojonugwaochalifu : 설명 감사합니다. 여기에서 한 작은 쿼리가 있습니다. 상대 레이아웃으로도 할 수 있습니다. 그렇다면 왜 프레임 레이아웃을 사용합니까?
akashPatra

3
예, 거의 동일한 작업을 수행하지만 뷰에 대한 좋은 디자인 관행은 레이아웃에 가능한 한 적은 중첩을 사용하는 것입니다. FrameLayout을 사용할 때 뷰를 서로 배치하는 데 필요한 중첩은 RelativeLayout을 사용할 때보 다 적습니다.
Ojonugwa Jude Ochalifu

75

FrameLayout의 가장 간단한 구현입니다 ViewGroup. 자식 뷰는 스택에 있으며, 가장 최근에 추가 된 뷰가 맨 위에 그려집니다. 일반적으로 다음 접근 방식 중 하나를 사용하거나 결합 할 수 있습니다.

  1. 단일보기 계층 추가 FrameLayout
  2. 여러 자녀를 추가 android:layout_gravity하고 탐색하는 데 사용

여기에 이미지 설명 입력

사용에 대한 또 다른 인기있는 접근 방식 FrameLayout:

  • Fragment 컨테이너
  • 당신의 관습의 조상으로서 ViewGroup

23

단어 frame를 일반 사진 프레임으로 간주 할 수 있습니다 . 그 프레임으로 무엇을합니까? 그 프레임에 사진을 한 겹 위로 올릴 수 있습니다. 동일 같이 FrameLayout우리가 같은 다른 전망 (모든 레이아웃, 또는 위젯 버튼, 텍스트처럼, 이미지 등) 상단을 배치 할 수 있습니다 @ojonugwa 쇼 당신에게 이미지의 텍스트 뷰의 상단.


좋아, 나는 그것을 iframe웹 개발에서 오는 것으로 생각하고 있었다 . 가장 간단한 설명에 감사드립니다.
Tarik

19

Google 검색을 하셨나요?

프레임 레이아웃은 단일 항목을 표시하기 위해 화면의 영역을 차단하도록 설계되었습니다. 일반적으로 FrameLayout은 자식이 서로 겹치지 않고 다른 화면 크기로 확장 가능한 방식으로 자식보기를 구성하기 어려울 수 있으므로 단일 자식보기를 유지하는 데 사용해야합니다.

그러나 여러 자식을 FrameLayout에 추가하고 android : layout_gravity 속성을 사용하여 각 자식에게 중력을 할당하여 FrameLayout 내에서 위치를 제어 할 수 있습니다.

FrameLayout의 비밀은 자식을 레이아웃하는 방법입니다. 일반적으로 하나의 항목을 포함하도록 설계되었지만 다른 요소를 서로 쌓아 올릴 것입니다. 따라서 FrameLayout은 본질적으로 화면에서 뷰의 Z 순서를 조작하는 방법입니다.

이것은 HUD와 같은 요소에서 슬라이딩 패널, 더 복잡한 애니메이션 전환에 이르기까지 몇 가지 UI 트릭에 매우 유용합니다. 이 게시물에서 우리는 각각에 대한 예제를 볼 것입니다.

FrameLayout은 한 번에 하나의 항목을 표시하도록 설계되었습니다. FrameLayout 내에 여러 요소를 가질 수 있지만 각 요소는 화면의 왼쪽 상단을 기준으로 배치됩니다. 겹치는 요소는 겹치는 것으로 표시됩니다. 이것이 어떻게 작동하는지 보여주는 FrameLayout을 사용하여 간단한 XML 레이아웃을 만들었습니다.


8
네, 봤어요. 그러나 나는 그들이 무엇을 말하는지 알 수 없었다.
아민 가세

액자처럼 생각할 수 있습니다. 기본적으로 입력 한 내용은 화면 왼쪽에 할당됩니다. learn-android-easily.com/2013/05/frame-layout-in-androis.html
Metehan

따라서 대부분의 경우 단일 항목을 표시하는 데 사용해야합니다.
Metehan 2014 년

4

기본적으로 예를 들어 하나의 뷰를 다른 뷰 위에 놓습니다.

이미지의 텍스트 부풀림

  <FrameLayout>

<ImageView>
<Textview>

  </FrameLayout>

1
nope linearlayout은 그 위에 프레임을 배치합니다. 그 위에 프레임이 배치됩니다. 이미지에 격자가 있고 해당 이미지 위에 취소 버튼이있는 것과 같은 시나리오를 말합니다. ..... 프레임 레이아웃을 사용합니다
KOTIOS
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.