日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Android動態加載布局實現技巧介紹_Android

作者:z啵唧啵唧 ? 更新時間: 2022-12-29 編程語言

使用限定符

在平板上面大多數時候采用的雙頁的模式,程序會在左側列表上顯示一個包含子項列表,右側的面版會顯示詳細的內容的因為平板具有足夠大的屏幕.完全能夠顯示兩頁的內容.但是在手機上手機只能顯示一頁的內容,因此需要兩個頁面分開顯示.

  • 在運行時判斷程序應該使用雙頁模式還是單頁模式,需要借助限定符==(qualifier)==來進行實現.
  • 在layout/activity_main.xml中只包含一個Fragment,即單頁模式
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    <fragment
        android:id="@+id/leftFrag"
        android:name="com.zb.fragmenttest.LeftFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1" />
</LinearLayout>

創建一個layout_large目錄,在這個目錄下創建一個同樣名為activity_main.xml的文件,但是在該布局當中包含兩個Fragment,即雙頁模式.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    <fragment
        android:id="@+id/leftFrag"
        android:name="com.zb.fragmenttest.LeftFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1" />
    <fragment
        android:id="@+id/rightFrag"
        android:name="com.zb.fragmenttest.RightFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3" />
</LinearLayout>
  • 解決在Android開發中layout_large目錄下不能創建xml文件的方法:https://blog.csdn.net/CEVERY/article/details/86593814
  • 其中large就是一個限定符,那些屏幕被認為是large的設備就睡加載layout_large文件夾下的布局,小屏幕設備則還是會加載layout文件夾下面的布局.
  • 這樣就可以實現動態加載布局的功能.
  • 安卓中常見的限定符

使用最小寬度限定符

  • 最小寬度限定符,允許我們對屏幕的寬度指定一個最小值(以dp為單位)
  • 然后以這個最小值為臨界點.屏幕寬度大于這個值得設備就加載一個布局
  • 屏幕寬度小于這個值得就加載另外一個布局
  • 在res目錄下新家一個layout-sw600dp文件夾,然后在這個文件夾下面建一個activity_main.xml布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    <fragment
        android:id="@+id/leftFrag"
        android:name="com.zb.fragmenttest.LeftFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1" />
    <fragment
        android:name="com.zb.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布局.

原文鏈接:https://blog.csdn.net/weixin_45809829/article/details/128064733

欄目分類
最近更新