Android中一些常見的限定符可以參考下表.
使用最小寬度限定符
在上一小節中我們使用large限定符成功解決了單頁雙頁的判斷問題,不過很快又有一個新的問題出現了,large到底是指多大呢?有的時候我們希望可以更加靈活地為不同設備加載布局,不管它們是不是被系統認定為“large”,這時就可以使用最小寬度限定符(Smallest-width Qualifier)了。
最小寬度限定符允許我們對屏幕的寬度指定一個最小指(以dp為單位),然后以這個最小值為臨界點,屏幕寬度大於這個值的設備就加載一個布局,屏幕寬度小於這個值的設備就加載另一個布局。
在res目錄下新建layout-sw600dp文件夾,然后在這個文件夾下新建activity_main.xml布局,代碼如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <fragment android:id="@+id/left_fragment" android:name="com.example.fragmenttest.LeftFragment" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" /> <fragment android:id="@+id/right_fragment" android:name="com.example.fragmenttest.RightFragment" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="3" /> </LinearLayout>
這就意味着,當程序運行在屏幕寬度大於600dp的設備上時,會加載layout-sw600dp/ activity_main布局,當程序運行在屏幕寬度小於600dp的設備上時,則仍然加載默認的layout/activity_main布局。
需要注意一點,最小寬度限定符是在Android 3.2版本引入的,由於這里我們最低兼容的系統版本是4.0,所以可以放心地使用它。