Android: yatay mod için alternatif düzen xml


Yanıtlar:


217

Varsayılan olarak, içindeki düzenler /res/layouthem dikey hem de manzaraya uygulanır.

Örneğin varsa

/res/layout/main.xml

yeni bir klasör ekleyebilir /res/layout-land, main.xmliçine kopyalayabilir ve gerekli ayarlamaları yapabilirsiniz.

oryantasyon

Daha fazla seçenek için ayrıca http://www.androidpeople.com/android-portrait-amp-landscape-differeent-layouts ve http://www.devx.com/wireless/Article/40792/1954 adreslerine bakın .


1
layout-land adını veya başka bir kelimeyi saklamalı mıyım @marapet
Pavan Mahesh

9
Başka kelime kullanamazsınız
Foo

Arka plan resmim manzara üzerinde uzanıyor. Layout-land ve drawable-land var..hala uzanıyor..Aynı görüntü, 9-patch images, mdpi, hdpi n all..hala sorun devam ediyor :(
Prabs

ne demekportrait
dsdsdsdsd

@dsdsdsdsd Android stüdyosuna göre düzen bağlantı noktasıdır
Gregzenegair

76

Android Studio'nun (v1.0.2) mevcut sürümünde, aşağıdaki ekran görüntüsünde gösterilen görsel düzenleyicideki düğmeye tıklayarak bir manzara düzeni ekleyebilirsiniz. "Peyzaj Varyasyonu Oluştur" u seçin

Android Studio yatay düzen ekle


layout-landKlasörünüze yeni bir kopya koyması dışında . Oradan bir düzeni nasıl arayacağınıza dair bir fikriniz var mı? Kullanılamaz R.layout.layout_name. Yapılandırma değişikliğinden sonra kendi düzenlerimi manuel olarak yapılandırmaya çalışıyorum, teşekkürler.
Azurespot

2
@NoniA. Telefon manzaraya geçtiğinde bunu algılamalı ve yerleşim yerinden olanı otomatik olarak aramalıdır.
Distwo

43

Siz aksini belirtmediğiniz sürece / res / layout içindeki düzenler hem dikey hem de manzaraya uygulanır. Ana sayfamız için /res/layout/home.xml'ye sahip olduğumuzu ve 2 düzen türünde farklı görünmesini istediğimizi varsayalım.

  1. klasör / res / layout-land oluştur (burada peyzaj ayarlı düzenlerinizi koruyacaksınız)
  2. home.xml dosyasını oraya kopyalayın
  3. üzerinde gerekli değişiklikleri yap

Kaynak


peki ya 'portre' için?
dsdsdsdsd

Yeni <sw> niteleyicilerine ne dersiniz?
Ruchir Baronia

6

Android Studio 3.xx ve Android Studio 4.xx için en hızlı yol

1. Aktivite düzeninin tasarım sekmesine gidin

2. En üstte önizleme için yön düğmesine basmanız gerekir, bir yatay düzen oluşturma seçeneği vardır (resmi kontrol edin), bu belirli yön için xml düzen dosyanız olarak yeni bir klasör oluşturulur.

görüntü açıklamasını buraya girin


2

Özel düzeninizi aşağıdaki gibi doğru klasör yapısı altında gruplayabilirsiniz.

düzen-kara-target_version

yani

layout-land-19 // hedef KitKat

aynı şekilde düzenlerinizi de oluşturabilirsiniz.

Umarım bu sana yardımcı olur


Yanıtladığınız için teşekkürler, ancak yanıtınızın nasıl yardımcı olduğunu anlamıyorum çünkü bu soru zaten yanıtlanmıştı. Belki -19son ekin faydasını açıklayabilirsin ? Bu herhangi bir şekilde yardımcı oldu mu?
Bryan Tarla

0

Kısaca açıklamaya çalışacağım.

İlk olarak, şimdi ConstraintLayout'u google tarafından istendiği gibi kullanmanız gerektiğini fark edebilirsiniz (bkz. Androix kitaplığı).

Android stüdyo projenizde, ek res / layout / dizinler oluşturarak ekrana özel düzenler sağlayabilirsiniz. Farklı bir düzen gerektiren her ekran yapılandırması için bir tane.

Bu , her iki durumda da dizin niteleyicisini kullanmanız gerektiği anlamına gelir :

  • Android cihaz desteği
  • Android yatay veya dikey modu

Sonuç olarak, işte bir örnek:

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

Niteleyiciyi ayrıca dimens.xml kullanarak kaynak dosyalarıyla da kullanabilirsiniz.

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

res / değerler / dimens.xml

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

res / values-kara / 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>

Kaynak: https://developer.android.com/training/multiscreen/screensizes

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.