Yatay ve dikey için bir düzene nasıl sahip olabilirim? Kullanıcı telefonu yana doğru döndürdüğünde ekstra genişlik varsaymak ve dikey alanı korumak istiyorum.
Yatay ve dikey için bir düzene nasıl sahip olabilirim? Kullanıcı telefonu yana doğru döndürdüğünde ekstra genişlik varsaymak ve dikey alanı korumak istiyorum.
Yanıtlar:
Varsayılan olarak, içindeki düzenler /res/layout
hem dikey hem de manzaraya uygulanır.
Örneğin varsa
/res/layout/main.xml
yeni bir klasör ekleyebilir /res/layout-land
, main.xml
içine kopyalayabilir ve gerekli ayarlamaları yapabilirsiniz.
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 .
portrait
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
layout-land
Klasö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.
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.
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.
Ö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
-19
son ekin faydasını açıklayabilirsin ? Bu herhangi bir şekilde yardımcı oldu mu?
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 :
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