[英]How to store 3 layout files for phone, small tablets and big tablets
我有一個包含大約 20 個 xml 布局文件的應用程序。 雖然花了很多時間為所有設備制作通用約束布局(這對我來說是不可能的),但我現在想為手機、小型平板電腦和大型平板電腦創建一個單獨的布局文件。 所以我將有 20 個布局文件,用於手機(5' - 6.8' 顯示屏)、小型平板電腦(7' - 9' 顯示屏)和大型平板電腦(超過 9' 顯示屏)。
我的問題是,我應該將它們存儲在哪里,以便 Android 根據使用的設備自動選擇正確的布局? 在這個問題中,Layout for tablets in Android據說我應該將 xml 布局文件存儲在
res/layout/main_activity.xml # For handsets (smaller than 600dp available width)
res/layout-sw600dp/main_activity.xml # For 7” tablets (600dp wide and bigger)
res/layout-sw720dp/main_activity.xml # For 10” tablets (720dp wide and bigger)
要么
res/layout/my_layout.xml // layout for normal screen size
res/layout-small/my_layout.xml // layout for small screen size
res/layout-large/my_layout.xml // layout for large screen size
res/layout-large-land/my_layout.xml // layout for large screen size in landscape mod
但是,我無法通過像素密度來區分設備,因為具有相同顯示尺寸的不同設備可能具有不同的分辨率。 此外,我想制作 20 個 xml 布局文件,而不是針對一種特定尺寸,而是針對顯示尺寸范圍(否則我將不得不創建太多的 xml 布局文件)。
如何定義用於存儲顯示尺寸范圍的 xml 布局文件的文件夾:手機(5' - 6.8' 顯示屏)、小型平板電腦(7' - 9' 顯示屏)和大平板電腦(超過 9' 顯示屏)。
提醒:我會很感激每一個進一步的評論,因為我仍然不知道該怎么做
使用此依賴項。
implementation 'com.intuit.ssp:ssp-android:1.0.5'
implementation 'com.intuit.sdp:sdp-android:1.0.5'
然后申請
android:layout_width="@dimen/_24sdp"
android:layout_height="@dimen/_24sdp"
對於你的問題和任何有同樣問題的人,
sw-600dp
(或根據用例)從“可用限定符”列表中調整布局。 然后用sw-700dp
制作一個並調整它。Android follows an order of precedence when determining which resources to apply
。 此順序與“可用限定符”列表中給出的限定符相同,可供選擇。首先,您寫下您已決定根據英寸尺寸應用顯示更改,不建議這樣做。 由於有許多不同的數字小工具,在顯示屏的每一英寸中具有不同的像素,這意味着僅具有更高的生產尺寸並不能帶來更好的分辨率質量; Android提供了一個單位來解決這個問題,它是一個比率:dots per inch "dp"。 抽時間看看 Android 關於測量工作原理的官方指南:
https://developer.android.com/guide/topics/large-screens/support-different-screen-sizes
在這里,您可以找到合適的大小分隔符以及聲明它們的原因的定義。
為了讓您的 App 能夠選擇合適的布局來顯示,您必須根據分辨率在目錄中添加新的 Activity 布局或 Fragment 布局。 只需創建一個與當前現有布局同名的布局,但將其目錄更改為所需的大小類別,例如:布局 sw-600dp、布局 sw-840dp 等。然后將創建的布局設計為負責上述顯示。
這是您的資源的外觀:
如果您可以表達代碼的重要部分,我可以提供更明確的建議。
最后,如果您的應用僅由活動處理,您可能需要使用片段工具來保存和顯示不同的布局。 看看這個:
https://developer.android.com/guide/fragments/fragmentmanager
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.