Smallest-width 限定符


很多開發者都想在這個範圍內根據不同的具體屏幕尺寸來顯示不同的佈局(例如 5寸和7寸的設備)。
在Android 3.2版本中引入 “Smallest-width”限定符就是爲了解決這個問題的。


例如,普通的7寸平板的最小寬度是600dp,因此如果你希望你的程序在這種尺寸的屏幕上使用兩個窗口(小於該尺寸的屏幕使用一個窗口),
那麼您可以使用上面的兩個佈局文件,只要把xlarge 限定符替換爲sw600dp 即可, 可以看出在3.2+版本中,對屏幕的限定更加詳細了。


只要最小屏幕寬度大於等於600dp的設備都會使用layout-sw600dp/main.xml 這個兩個窗口布局,而小於該尺寸的設備就用layout/main.xml 一個窗口的佈局。
但是,這樣在3.2之前的版本沒法使用,因爲他們不認識sw600dp 這個限定符,這樣您還是要同時使用xlarge 限定符。這樣您的res/layout-xlarge/main.xml   文件和res/layout-sw600dp/main.xml 文件的內容是一樣的。


上面看到的Smallest-width限定符只適用於3.2+的設備,因此您還需要同時使用(small, normal,large and xlarge)這些限定符來讓您的程序運行在3.2之前的系統中。例如:如果你想設計一個界面,在手機中顯示一個窗口,而在7寸平板或者更大的設備中顯示兩個窗口,您需要這些佈局文件:
res/layout/main.xml: 單個窗口布局
res/layout-xlarge: 兩個窗口布局
res/layout-sw600dp: 兩個窗口布局


面的兩個佈局文件是一樣的,一個是用於3.2+設備的;一個用於之前的設備的。
爲了避免這種佈局文件的重複,並且維護起來也很麻煩,您可以使用別名文件。例如您可以定義如下的佈局文件:
res/layout/main.xml , 單個窗口布局
res/layout/main_twopanes.xml , 兩個窗口布局
佈局文件內容:
 
res/values-xlarge/layout.xml 
Xml代碼  收藏代碼
<resources>  
    <item name="main" type="layout">@layout/main_twopanes</item>  
</resources>  
 
res/values-sw600dp/layout.xml
Xml代碼  收藏代碼
<resources>  
    <item name="main" type="layout">@layout/main_twopanes</item>  
</resources>  
 
這兩個文件內容是一樣的,但是他們實際上並沒有定義佈局。他們僅僅設置了main 爲main_twopanes 的一個別名。既然該佈局文件有xlarge   和  sw600dp 這兩個限定符,這樣不管系統的版本是3.2之前的還是之後的,滿足尺寸要求的都會使用該佈局。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章