雖然動態新增碎片的功能很強大,但在很多實際開發過程中,它只是在乙個布局檔案中進行一些新增和替換的操作。若我們的程式能夠根據裝置的解析度或螢幕的大小在執行時來決定載入哪個布局,那我們可以發揮的空間就很多了,下面我們一起來簡單看一下動態載入布局的技巧。
1.使用限定符
我們如果經常使用平板我們會發現在平板的螢幕上我們很多的使用的是雙頁模式,但是在手機一次只能顯示一頁,我們在執行程式是新增qualifiers限定符幫助我們解決這個問題
我們將activity_main中的**修改如下:
xmlns:android=""
xmlns:tools=""
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.pc123.left_fragement.mainactivity">
android:id="@+id/left_frament"
android:name="com.example.pc123.left_fragement.leftfragement"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
linearlayout>
只留下乙個左側的布局。
在res下新建乙個activity_large檔案,在其中新建乙個名字也是activity_main的布局檔案,其中**如下:
<?xml version="1.0" encoding="utf-8"?>
xmlns:android=""
xmlns:tools=""
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/left_fragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
tools:ignore="suspicious0dp" />
android:id="@+id/right_fragmennt"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
tools:ignore="suspicious0dp" />
linearlayout>
可見layout/layout_main中包含了乙個碎片,而layout_large/layout_main中包含了兩個碎片,其中large就是乙個限定符,那些螢幕被認為是large的就會自動載入layout_large檔案,然後將mainactivity中的replacefragment()中的**注釋掉。
還有幾種限定符介紹如下:
大小:
1. small:提供給小螢幕裝置的資源
2. normal:提供給中等螢幕的資源
3. large:提供給大螢幕裝置的資源
4. xlarge:超大螢幕
解析度:
5. ldpi:提供給低解析度(120dpi以下)
6. mdpi:中等解析度(120-160)
7. hdpi:高解析度(160-240)
8. xhdpi:超高(240-320)
9. xxhdpi(320-480)
方向:
10. land:橫屏裝置
11. port:豎屏裝置
2.使用最小寬度限定符
我們在上面解決了單雙頁的問題,但是我們對large到底是多大還不能判斷,所以我們需要引入新的限定符,來實現這些,為此我們引入了smallest-widthqualifier。
同樣的方法我們在res下新建layout-sw600dp檔案,在這個資料夾下新建activity_main布局,在其中新增我們想用的布局元素,當我們執行在螢幕寬度大於600dp的裝置上時就會呼叫這個檔案,反之還是會呼叫預設的檔案。
第七天學習
練習題 1 以下類定義中哪些是類屬性,哪些是例項屬性?class c num 0 def init self self.x 4 self.y 5 c.count 62 怎麼定義私有 法?3 嘗試執行以下 並解釋錯誤原因 4 按照以下要求定義乙個遊樂園門票的類,並嘗試計算2個 1個小孩平日票價。要求 ...
安卓系統記賬本app第七天
今天的檔案圖 新的typebaseadapterpackage com.hui.asd.frag record import android.content.context import android.text.layout import android.view.layoutinflater i...
Java學習第七天
類成員 static成員 當使用例項來訪問類成員時,系統底層依然是委託該類來訪問類成員。因此,即便該類例項為null,她依然可以訪問所屬類的類成員。例如 package lesson5 單例模式 singleton 主要通過靜態變數 靜態方法和private構造方法完成。例如 package les...