Android : 가로 모드의 대체 레이아웃 XML


답변:


217

기본적으로 레이아웃은 /res/layout세로 및 가로 모두에 적용됩니다.

예를 들어

/res/layout/main.xml

새 폴더를 추가하고 폴더 /res/layout-land에 복사 한 main.xml후 필요한 조정을 수행 할 수 있습니다 .

정위

추가 옵션에 대해서는 http://www.androidpeople.com/android-portrait-amp-landscape-differeent-layoutshttp://www.devx.com/wireless/Article/40792/1954 를 참조하십시오 .


1
이름 레이아웃 랜드 또는 다른 단어 @marapet 을 유지해야 합니까
Vamsi Pavan Mahesh

9
다른 단어를 사용할 수 없습니다
Foo

내 배경 이미지가 가로 방향으로 뻗어 있습니다. 레이아웃 랜드와 드로어 블 랜드가 있습니다. 그러면 뻗어 있습니다 .. 동일한 이미지, 9 패치 이미지, mdpi, hdpi를 모두 사용하려고 시도했습니다.
Prabs

에 대한 단어 무엇인가portrait
dsdsdsdsd

안드로이드 스튜디오에 따르면 @dsdsdsdsd 그것은 레이아웃 포트입니다
Gregzenegair

76

현재 버전의 Android Studio (v1.0.2)에서는 아래 스크린 샷에 표시된 시각적 편집기에서 버튼을 클릭하여 가로 레이아웃을 추가 할 수 있습니다. "가로 변형 만들기"를 선택하십시오.

안드로이드 스튜디오 가로 레이아웃 추가


layout-land폴더에 새 사본을 넣는 것을 제외하고 . 거기에서 레이아웃을 호출하는 방법에 대한 아이디어가 있습니까? 사용할 수 없습니다 R.layout.layout_name. 구성 변경시 수동으로 자체 레이아웃을 구성하려고합니다. 감사합니다.
Azurespot

2
@NoniA. 전화기가 가로로 전환되는 시점을 감지하고 레이아웃 랜드에서 자동으로 전화를 겁니다.
Distwo

43

/ res / layout의 레이아웃은 달리 지정하지 않는 한 세로 및 가로 모두에 적용됩니다. 홈페이지에 /res/layout/home.xml이 있고 두 가지 레이아웃 유형에서 다르게 보이기를 원한다고 가정 해 봅시다.

  1. / res / layout-land 폴더를 만듭니다 (여기서 가로 조정 레이아웃을 유지합니다)
  2. 거기에 home.xml을 복사하십시오.
  3. 그것에 필요한 변경을

출처


'초상화'는 어떻습니까?
dsdsdsdsd

새로운 <sw> 한정자는 어떻습니까?
Ruchir Baronia

6

Android Studio 3.xx 및 Android Studio 4.xx를위한 가장 빠른 방법

1. 활동 레이아웃의 디자인 탭으로 이동

상단 에서 미리보기 방향 버튼을 눌러 가로 레이아웃을 만들 수있는 옵션이 있습니다 (이미지 확인), 해당 특정 방향에 대한 XML 레이아웃 파일로 새 폴더가 생성됩니다

여기에 이미지 설명을 입력하십시오


2

다음과 같이 올바른 레이아웃으로 특정 레이아웃을 그룹화 할 수 있습니다.

layout-land-target_version

layout-land-19 // 킷캣 대상

마찬가지로 레이아웃을 만들 수 있습니다.

희망이 당신을 도울 것입니다


답변 해 주셔서 감사하지만이 질문에 대한 답변이 이미 답변되어 있으므로 귀하의 답변이 어떻게 도움이되는지 모르겠습니다. -19접미사 의 이점을 설명해 주 시겠습니까? 어떤 식 으로든 도움이 되나요?
Bryan Field

0

나는 그것을 곧 설명하려고 노력할 것이다.

먼저 Google에서 요청한대로 ConstraintLayout 을 사용해야한다는 것을 알 수 있습니다 (Androix 라이브러리 참조).

android studio projet에서 res / layout / 디렉토리를 추가하여 화면 별 레이아웃을 제공 할 수 있습니다. 다른 레이아웃이 필요한 각 화면 구성마다 하나씩입니다.

즉 , 두 경우 모두 디렉토리 한정자 를 사용해야합니다 .

  • 안드로이드 장치 지원
  • 안드로이드 가로 또는 세로 모드

결과적으로, 여기 예가 있습니다 :

res/layout/main_activity.xml                # For handsets
res/layout-land/main_activity.xml           # For handsets in landscape
res/layout-sw600dp/main_activity.xml        # For 7” tablets
res/layout-sw600dp-land/main_activity.xml   # For 7” tablets in landscape

dimens.xml을 사용하여 ressources 파일과 함께 규정자를 사용할 수도 있습니다.

res/values/dimens.xml                # For handsets
res/values-land/dimens.xml           # For handsets in landscape
res/values-sw600dp/dimens.xml        # For 7” tablets

해상도 / 값 /dimens.xml

<resources>
    <dimen name="grid_view_item_height">70dp</dimen>
</resources>

해상도 / 값-랜드 /dimens.xml

<resources>
    <dimen name="grid_view_item_height">150dp</dimen>
</resources>

your_item_grid_or_list_layout.xml

<androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/constraintlayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content

    <ImageView
            android:id="@+id/image"
            android:layout_width="0dp"
            android:layout_height="@dimen/grid_view_item_height"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:background="@drawable/border"
            android:src="@drawable/ic_menu_slideshow">

</androidx.constraintlayout.widget.ConstraintLayout>

출처 : https://developer.android.com/training/multiscreen/screensizes

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.