最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android嵌套線性布局玩法坑解決方法

 更新時間:2022年10月31日 15:59:34   作者:打哭廖廖  
這篇文章主要為大家介紹了Android嵌套線性布局玩法坑解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

嵌套線性布局大家應(yīng)該都用的非常熟悉,畢竟這玩意理解起來也是真的簡單,而且如果熟悉的話這玩意開發(fā)起來的效率也是真的快,不用一下一下拖動。

但是這個玩意有個非常的問題,就是性能問題,而且人家性能問題是指數(shù)級別增加的,怎么回事呢,因?yàn)槟闳绻粚右粚拥那短撞季值脑?,系統(tǒng)在繪制的時候就是指數(shù)級別的繪制次數(shù),如果你只是嵌套了倆層那都還能接受的玩,如果你一個界面控件很多,然后你又嵌套幾層線性布局,那這個時候性能就十分低下了。

詳解

  • 看下面的代碼,就是一個十分典型的線性嵌套布局,用起來是很爽,無腦套,但是系統(tǒng)可不少受
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <LinearLayout
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
                <LinearLayout
                    android:orientation="vertical"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">
                    <LinearLayout
                        android:orientation="vertical"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent">

                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

</FrameLayout>

為什么會讓性能降低的怎么嚴(yán)重呢?

結(jié)論是繪制次數(shù)太多,主要是線性布局會造成這個問題,線性布局會對子view進(jìn)行二次測量甚至三次測量。

比如:

1.LinearLayout寬度為wrap_content,因此它將選擇子View的最大寬度為其最后的寬度

2.但是有個子View的寬度為match_parent,意思它將以LinearLayout的寬度為寬度,這就陷入死循環(huán)了

3.因此這時候, LinearLayout 就會先以0為強(qiáng)制寬度測量一下子View,并正常地測量剩下的其他子View,然后再用其他子View里最寬的那個的寬度,二次測量這個match_parent的子 View,最終得出它的尺寸,并把這個寬度作為自己最終的寬度。

4.這是對單個子View的二次測量,如果有多個子View寫了match_parent ,那就需要對它們每一個都進(jìn)行二次測量。

5.除此之外,如果在LinearLayout中使用了weight會導(dǎo)致測量3次甚至更多,重復(fù)測量在Android中是很常見的

所以我們的嵌套對性能影響是指數(shù)級別的,比如線性套線性套線性這種。

以上就是Android嵌套線性布局玩法坑解決方法的詳細(xì)內(nèi)容,更多關(guān)于Android 嵌套線性布局的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用RecyclerView實(shí)現(xiàn)水平列表

    使用RecyclerView實(shí)現(xiàn)水平列表

    這篇文章主要為大家詳細(xì)介紹了使用RecyclerView實(shí)現(xiàn)水平列表,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • android雙緩沖技術(shù)實(shí)例詳解

    android雙緩沖技術(shù)實(shí)例詳解

    這篇文章主要介紹了android雙緩沖技術(shù)實(shí)例詳解,需要的朋友可以參考下
    2014-07-07
  • Android 自定義View的構(gòu)造函數(shù)詳細(xì)介紹

    Android 自定義View的構(gòu)造函數(shù)詳細(xì)介紹

    這篇文章主要介紹了Android 自定義View的構(gòu)造函數(shù)詳細(xì)介紹的相關(guān)資料,這里對構(gòu)造函數(shù)進(jìn)行了對比按需使用,需要的朋友可以參考下
    2016-12-12
  • Android UI組件Spinner下拉列表詳解

    Android UI組件Spinner下拉列表詳解

    這篇文章主要為大家詳細(xì)介紹了Android UI組件Spinner下拉列表的實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Android開發(fā)之使用ExifInterface獲取拍照后的圖片屬性

    Android開發(fā)之使用ExifInterface獲取拍照后的圖片屬性

    這篇文章主要介紹了Android開發(fā)之使用ExifInterface獲取拍照后的圖片屬性,較為詳細(xì)的分析了ExifInterface類操作圖片的具體使用技巧,需要的朋友可以參考下
    2016-01-01
  • Android幀率監(jiān)測與優(yōu)化技巧

    Android幀率監(jiān)測與優(yōu)化技巧

    Android 應(yīng)用的性能優(yōu)化是開發(fā)過程中至關(guān)重要的一環(huán),而幀率(Frame Rate)是評估應(yīng)用性能的一個關(guān)鍵指標(biāo),在本文中,我們將深入探討如何監(jiān)測 Android 應(yīng)用的幀率,以及如何通過代碼示例來優(yōu)化應(yīng)用的性能,需要的朋友可以參考下
    2023-10-10
  • Android之線程池ThreadPoolExecutor的簡介

    Android之線程池ThreadPoolExecutor的簡介

    今天小編就為大家分享一篇關(guān)于Android之線程池ThreadPoolExecutor的簡介,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • Android不同版本兼容性適配方法教程

    Android不同版本兼容性適配方法教程

    這篇文章主要介紹了Android不同版本兼容性適配方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-11-11
  • android播放視頻時在立體聲與單聲道之間切換無變化原因分析及解決

    android播放視頻時在立體聲與單聲道之間切換無變化原因分析及解決

    使用第三方視頻播放器,有立體聲與單聲道之間切換,發(fā)現(xiàn)切換后無作用,原因是由于在HAL層默認(rèn)沒有處理上層發(fā)的stereo 轉(zhuǎn)mono的命令,具體的解決方法如下
    2013-06-06
  • Android OnCreate()中獲取控件高度與寬度兩種方法詳解

    Android OnCreate()中獲取控件高度與寬度兩種方法詳解

    這篇文章主要介紹了Android OnCreate()中獲取控件高度與寬度兩種方法詳解的相關(guān)資料,這里提供了兩種方法,大家可以都看下,需要的朋友可以參考下
    2016-12-12

最新評論

石嘴山市| 东辽县| 柳江县| 扬中市| 平舆县| 兴海县| 晋州市| 句容市| 普陀区| 南平市| 昔阳县| 江油市| 青州市| 武平县| 社会| 安溪县| 通榆县| 循化| 中山市| 锦屏县| 历史| 南投市| 右玉县| 章丘市| 康马县| 西盟| 四子王旗| 民权县| 静安区| 永州市| 资溪县| 安泽县| 常德市| 曲周县| 蒙山县| 饶河县| 嘉鱼县| 阜康市| 定南县| 子长县| 沙湾县|