日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

APP性能之终端兼容

發布時間:2025/3/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 APP性能之终端兼容 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、細說layout_weight 目前最為推薦的Android多屏幕自適應解決方案。 該屬性的作用是決定控件在其父布局中的顯示權重,一般用于線性布局中。其值越小,則對應的layout_width或layout_height的優先級就越高,一般橫向布局中,決定的是layout_width的優先級;縱向布局中,決定的是layout_height的優先級。 傳統的layout_weight使用方法是將當前控件的layout_width和layout_height都設置成fill_parent,這樣就可以把控件的顯示比例完全交給layout_weight;這樣使用的話,就出現了layout_weight越小,顯示比例越大的情況。不過對于2個控件還好,如果控件過多,且顯示比例也不相同的時候,控制起來就比較麻煩了,畢竟反比不是那么好確定的。 于是就有了現在最為流行的0px設值法。看似讓人難以理解的layout_height=0px的寫法,結合layout_weight,卻可以使控件成正比例顯示,輕松解決了當前Android開發最為頭疼的碎片化問題之一。 先看下面的styles(style_layout.xml) ? 代碼片段,雙擊復制
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <?xml version="1.0" encoding="utf-8"?><br> <resources>??<br> <br> <!-- 全屏幕拉伸--><br> ??<style name="layout_full">??<br> ??? <item name="android:layout_width">fill_parent</item>??<br> ??? <item name="android:layout_height">fill_parent</item>??<br> ??</style><br> ??<br> <!-- 固定自身大小--><br> ??<style name="layout_wrap">??<br> ??? <item name="android:layout_width">wrap_content</item>??<br> ??? <item name="android:layout_height">wrap_content</item>??<br> ??</style><br> <br> <!-- 橫向分布--><br> ??<style name="layout_horizontal" parent="layout_full">??<br> ??? <item name="android:layout_width">0px</item>??<br> ??</style> <br> ???<br> <!-- 縱向分布--><br> ??<style name="layout_vertical" parent="layout_full">??<br> ??? <item name="android:layout_height">0px</item>??<br> ??</style> <br> ???? ???<br> </resources>??

?

可以看到,layout_width和layout_height兩個屬性被我封裝成了4個style 根據實際布局情況,選用當中的一種,不需要自己設置,看過我前一個ActivityGroup的Demo的同學應該非常熟悉了 然后我的Demo的布局如下(weight_layout.xml)

?

? 代碼片段,雙擊復制
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 <?xml version="1.0" encoding="utf-8"?><br> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br> ???? ???style="@style/layout_full"<br> ???? ???android:orientation="vertical"><br> ???? ???<LinearLayout <br> ???? ?? ?? ?? ? style="@style/layout_vertical"<br> ???? ?? ?? ?? ? android:layout_weight="1"<br> ???? ?? ?? ?? ? android:orientation="horizontal"><br> ???? ?? ?? ?? ???<View<br> ???? ?? ?? ?? ?? ?? ?? ? style="@style/layout_horizontal"<br> ???? ?? ?? ?? ?? ?? ?? ? android:background="#aa0000"<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_weight="1"/><br> ???? ?? ?? ?? ???<View<br> ???? ?? ?? ?? ?? ?? ?? ? style="@style/layout_horizontal"<br> ???? ?? ?? ?? ?? ?? ?? ? android:background="#00aa00"<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_weight="4"/><br> ???? ?? ?? ?? ???<View<br> ???? ?? ?? ?? ?? ?? ?? ? style="@style/layout_horizontal"<br> ???? ?? ?? ?? ?? ?? ?? ? android:background="#0000aa"<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_weight="3"/><br> ???? ?? ?? ?? ???<View<br> ???? ?? ?? ?? ?? ?? ?? ? style="@style/layout_horizontal"<br> ???? ?? ?? ?? ?? ?? ?? ? android:background="#aaaaaa"<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_weight="2"/>? ?? ?? ?? ?? ???<br> ???? ???</LinearLayout> <br> ???? ???<LinearLayout <br> ???? ?? ?? ?? ? style="@style/layout_vertical"<br> ???? ?? ?? ?? ? android:layout_weight="2"<br> ???? ?? ?? ?? ? android:orientation="vertical"><br> ???? ?? ?? ?? ? <View<br> ???? ?? ?? ?? ?? ?? ?? ? style="@style/layout_vertical"<br> ???? ?? ?? ?? ?? ?? ?? ? android:background="#ffffff"<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_weight="4"/>? ?? ???<br> ???? ?? ?? ?? ???<View<br> ???? ?? ?? ?? ?? ?? ?? ? style="@style/layout_vertical"<br> ???? ?? ?? ?? ?? ?? ?? ? android:background="#aa0000"<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_weight="3"/><br> ???? ?? ?? ?? ???<View<br> ???? ?? ?? ?? ?? ?? ?? ? style="@style/layout_vertical"<br> ???? ?? ?? ?? ?? ?? ?? ? android:background="#00aa00"<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_weight="2"/><br> ???? ?? ?? ?? ???<View<br> ???? ?? ?? ?? ?? ?? ?? ? style="@style/layout_vertical"<br> ???? ?? ?? ?? ?? ?? ?? ? android:background="#0000aa"<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_weight="1"/><br> <br> ???? ???</LinearLayout><br> </LinearLayout><br>

?

整個界面布局看起來非常直觀,只是嵌套的邏輯要自己理下。顯示效果如下圖,其中左面一個是480x800的界面,右面的是320x480的界面(后面的圖也如此),可以看出顯示比例和代碼中完全一致,我就不多說了,大家對照下就能看出來了。


?

?

二、自定義尺寸法

?

這個是我自己想出來的方法,可能是個比較笨的方法,所以沒有多少人提過用這種方法解決自適應的問題。雖然這個方法缺點也很多,但有時候也是個不錯的方法。 先看下面這張圖

?

可以看到我定義了兩套尺寸文件,我們可以看下其中一個文件 ? 代碼片段,雙擊復制
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 <?xml version="1.0" encoding="utf-8"?><br> <resources><br> <dimen name="height_1_80">6px</dimen><dimen name="height_2_80">12px</dimen><br> <dimen name="height_3_80">18px</dimen><dimen name="height_4_80">24px</dimen><br> <dimen name="height_5_80">30px</dimen><dimen name="height_6_80">36px</dimen><br> <dimen name="height_7_80">42px</dimen><dimen name="height_8_80">48px</dimen><br> <dimen name="height_9_80">54px</dimen><dimen name="height_10_80">60px</dimen><br> <dimen name="height_11_80">66px</dimen><dimen name="height_12_80">72px</dimen><br> <dimen name="height_13_80">78px</dimen><dimen name="height_14_80">84px</dimen><br> <dimen name="height_15_80">90px</dimen><dimen name="height_16_80">96px</dimen><br> <dimen name="height_17_80">102px</dimen><dimen name="height_18_80">108px</dimen><br> <dimen name="height_19_80">114px</dimen><dimen name="height_20_80">120px</dimen><br> <dimen name="height_21_80">126px</dimen><dimen name="height_22_80">132px</dimen><br> <dimen name="height_23_80">138px</dimen><dimen name="height_24_80">144px</dimen><br> <dimen name="height_25_80">150px</dimen><dimen name="height_26_80">156px</dimen><br> <dimen name="height_27_80">162px</dimen><dimen name="height_28_80">168px</dimen><br> <dimen name="height_29_80">174px</dimen><dimen name="height_30_80">180px</dimen><br> <dimen name="height_31_80">186px</dimen><dimen name="height_32_80">192px</dimen><br> <dimen name="height_33_80">198px</dimen><dimen name="height_34_80">204px</dimen><br> <dimen name="height_35_80">210px</dimen><dimen name="height_36_80">216px</dimen><br> <dimen name="height_37_80">222px</dimen><dimen name="height_38_80">228px</dimen><br> <dimen name="height_39_80">234px</dimen><dimen name="height_40_80">240px</dimen><br> <dimen name="height_41_80">246px</dimen><dimen name="height_42_80">252px</dimen><br> <dimen name="height_43_80">258px</dimen><dimen name="height_44_80">264px</dimen><br> <dimen name="height_45_80">270px</dimen><dimen name="height_46_80">276px</dimen><br> <dimen name="height_47_80">282px</dimen><dimen name="height_48_80">288px</dimen><br> <dimen name="height_49_80">294px</dimen><dimen name="height_50_80">300px</dimen><br> <dimen name="height_51_80">306px</dimen><dimen name="height_52_80">312px</dimen><br> <dimen name="height_53_80">318px</dimen><dimen name="height_54_80">324px</dimen><br> <dimen name="height_55_80">330px</dimen><dimen name="height_56_80">336px</dimen><br> <dimen name="height_57_80">342px</dimen><dimen name="height_58_80">348px</dimen><br> <dimen name="height_59_80">354px</dimen><dimen name="height_60_80">360px</dimen><br> <dimen name="height_61_80">366px</dimen><dimen name="height_62_80">372px</dimen><br> <dimen name="height_63_80">378px</dimen><dimen name="height_64_80">384px</dimen><br> <dimen name="height_65_80">390px</dimen><dimen name="height_66_80">396px</dimen><br> <dimen name="height_67_80">402px</dimen><dimen name="height_68_80">408px</dimen><br> <dimen name="height_69_80">414px</dimen><dimen name="height_70_80">420px</dimen><br> <dimen name="height_71_80">426px</dimen><dimen name="height_72_80">432px</dimen><br> <dimen name="height_73_80">438px</dimen><dimen name="height_74_80">444px</dimen><br> <dimen name="height_75_80">450px</dimen><dimen name="height_76_80">456px</dimen><br> <dimen name="height_77_80">462px</dimen><dimen name="height_78_80">468px</dimen><br> <dimen name="height_79_80">474px</dimen><dimen name="height_80_80">480px</dimen>? ?<br> </resources><br>

?

這個是values-480x320文件夾下dimens_height.xml文件中的代碼,我把整個高度分成了80等分,這是因為大部分屏幕的寬度或高度都是80的整數倍(個別特殊的除外),不同的等分在不同的分辨率中設定不同的尺寸值。 由于每一套界面都要寫一套,所以有些同學可能覺著不太好,不過這個寫起來比較簡單,而且以后也不用改,所以有時候也可以考慮用一下! 再看我Demo的布局代碼(dimen_layout.xml) ? 代碼片段,雙擊復制
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 <?xml version="1.0" encoding="utf-8"?><br> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br> ???? ???android:layout_width="fill_parent"<br> ???? ?? ?android:layout_height="fill_parent"<br> ???? ???android:orientation="vertical"><br> ???? ?? ?? ?? ???<View<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_width="@dimen/width_76_80"<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_height="@dimen/height_10_80"<br> ???? ?? ?? ?? ?? ?? ?? ? android:background="#ffcccc"<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_margin="@dimen/width_2_80"/>? ?? ???<br> ???? ???<LinearLayout<br> ???? ?? ?? ?? ???android:layout_width="fill_parent"<br> ???? ?? ?? ?? ???android:layout_height="fill_parent"><br> ???? ?? ?? ?? ???<View<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_width="@dimen/width_30_80"<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_height="@dimen/height_50_80"<br> ???? ?? ?? ?? ?? ?? ?? ? android:background="#ccccff"<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_margin="@dimen/height_5_80"/><br> ???? ?? ?? ?? ???<LinearLayout<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_width="fill_parent"<br> ???? ?? ?? ?? ?? ?? ?? ? android:layout_height="fill_parent"<br> ???? ?? ?? ?? ?? ?? ?? ? android:orientation="vertical">? ?? ???<br> ???? ?? ?? ?? ?? ?? ?? ? <Button<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:layout_width="@dimen/width_30_80"<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:layout_height="@dimen/height_5_80"<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:background="#ccffcc"<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:layout_marginBottom="@dimen/height_1_80"<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:text="5"/><br> ???? ?? ?? ?? ?? ?? ?? ? <Button<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:layout_width="@dimen/width_30_80"<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:layout_height="@dimen/height_10_80"<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:background="#ccffcc"<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:layout_marginBottom="@dimen/height_1_80"<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:text="10"/><br> ???? ?? ?? ?? ?? ?? ?? ? <Button<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:layout_width="@dimen/width_30_80"<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:layout_height="@dimen/height_15_80"<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:background="#ccffcc"<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:layout_marginBottom="@dimen/height_1_80"<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:text="15"/><br> ???? ?? ?? ?? ?? ?? ?? ? <Button<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:layout_width="@dimen/width_30_80"<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:layout_height="@dimen/height_20_80"<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:background="#ccffcc"<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?android:text="20"/><br> ???? ?? ?? ?? ???</LinearLayout>? ?? ???<br> ???? ?? ?</LinearLayout>? ?? ?? ?? ?? ? <br> </LinearLayout>



以上是我寫的統一的布局代碼,來看下在兩個不同分辨率的模擬器上的顯示效果吧(大家注意我的代碼中有margin這樣的值也用到了自定義尺寸,如果這個margin使用layout_weight來控制的話,無疑要多嵌套一層線性布局,所以說沒有一個方法是十全十美的,這第2個方法有時候用起來反而還要方便一些)



?

?

?

三、在java代碼中設置寬高度 也許很多人會反對這種方法,因為即使是官方也是推薦使用xml的方式寫布局。不過我們在這不會像Swing那樣寫那么多麻煩的布局代碼,因為我們只是在代碼中重新設定控件的寬高度而已,其他屬性依然是交給xml布局文件的。這個方法其實是我跟同事偷學來的,雖然我不贊成這樣的方法,但他確確實實也是解決屏幕自適應問題的方案之一,而且它沒我想象的那么復雜,其實很簡單。 首先我們要做的是獲取當前屏幕的寬高度,因為這個在后面要用到 我們可以寫兩個靜態變量用來保存當前屏幕的寬高度: ? 代碼片段,雙擊復制
01 02 03 04 public class Constant {<br> ???? ???public static int displayWidth;??//屏幕寬度<br> ???? ???public static int displayHeight; //屏幕高度<br> }

然后在第一個Activity啟動的時候,獲取這兩個值 ? 代碼片段,雙擊復制
01 02 03 04 ???? ?? ?? ?DisplayMetrics displayMetrics = new DisplayMetrics();<br> ???? ?? ?? ?? ? getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);<br> ???? ?? ?? ?? ? Constant.displayWidth = displayMetrics.widthPixels;<br> ???? ?? ?? ?? ? Constant.displayHeight = displayMetrics.heightPixels;

布局代碼我們可以全都統一寫成wrap-content,其實寫成什么都無所謂,因為這個值只是暫時的 ? 代碼片段,雙擊復制
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <?xml version="1.0" encoding="utf-8"?><br> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br> ??? android:orientation="vertical"<br> ??? android:layout_width="fill_parent"<br> ??? android:layout_height="fill_parent"><br> <Button??<br> ???? ???android:id="@+id/btn1"<br> ??? android:layout_width="wrap_content" <br> ??? android:layout_height="wrap_content" <br> ??? android:background="#ffcccc"<br> ??? android:text="aaaaaaaa"/><br> <Button??<br> ???? ???android:id="@+id/btn2"<br> ??? android:layout_width="wrap_content" <br> ??? android:layout_height="wrap_content" <br> ??? android:background="#ccffcc"<br> ??? android:text="bbbbbbbbb"/><br> <Button??<br> ???? ???android:id="@+id/btn3"<br> ??? android:layout_width="wrap_content" <br> ??? android:layout_height="wrap_content" <br> ??? android:background="#ccccff"<br> ??? android:text="ccccccccc"/><br> <Button??<br> ???? ???android:id="@+id/btn4"<br> ??? android:layout_width="wrap_content" <br> ??? android:layout_height="wrap_content" <br> ??? android:background="#ffffcc"<br> ??? android:text="dddddddddddddddddd"/>? ?<br> </LinearLayout><br>

最后我們在Activity的onCreate方法里這么做 ? 代碼片段,雙擊復制
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 // 第一個按鈕,寬度100%,高度10%<br> ???? ?? ?? ?? ? LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ???LayoutParams.FILL_PARENT,<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ???(int) (Constant.displayHeight * 0.1f + 0.5f));<br> ???? ?? ?? ?? ? btn1.setLayoutParams(params);<br> ???? ?? ?? ?? ? // 第二個按鈕,寬度100%,高度30%<br> ???? ?? ?? ?? ? LinearLayout.LayoutParams params2 = new LinearLayout.LayoutParams(<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ???LayoutParams.FILL_PARENT,<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ???(int) (Constant.displayHeight * 0.3f + 0.5f));<br> ???? ?? ?? ?? ? btn2.setLayoutParams(params2);<br> ???? ?? ?? ?? ? // 第三個按鈕,寬度50%,高度20%<br> ???? ?? ?? ?? ? LinearLayout.LayoutParams params3 = new LinearLayout.LayoutParams(<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ???(int) (Constant.displayWidth * 0.5f + 0.5f),<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ???(int) (Constant.displayHeight * 0.2f + 0.5f));<br> ???? ?? ?? ?? ? btn3.setLayoutParams(params3);<br> ???? ?? ?? ?? ? // 第四個按鈕,寬度70%,高度填滿剩下的空間<br> ???? ?? ?? ?? ? LinearLayout.LayoutParams params4 = new LinearLayout.LayoutParams(<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ???(int) (Constant.displayWidth * 0.7f + 0.5f),<br> ???? ?? ?? ?? ?? ?? ?? ?? ?? ???LayoutParams.FILL_PARENT);<br> ???? ?? ?? ?? ? btn4.setLayoutParams(params4);

大家可以看到其實代碼并不復雜,都能看得懂 下面是效果顯示圖

?

3.png?(72.73 KB, 下載次數: 0)

?

四、多布局 做為最后的方法,也是最后一個才會考慮的方法,那就是為不同的尺寸界面單獨寫布局。不到萬不得已不要用這個方法,相信不少人和我一樣都被逼著用過這個方法吧。需要說明的是,橫豎屏切換使用不同布局也是用這個方法解決的;代碼我就不上了,給大家看兩張圖吧,一個是同1個布局的,一個是寫了多布局的,大家一看就明白了

補充一下,寫多個布局的時候,配置文件一定要加上這段配置代碼,不然有時可能會出問題
? ? <supports-screens android:largeScreens="true"
? ? ? ? ? ? ? ? android:normalScreens="true" android:anyDensity="true" />

?

?

五、其他 以上說的都是多個屏幕顯示相同內容需要考慮的問題,還有一種是在不同的屏幕上顯示內容不同的情況,其實這個問題我們往往是用滾動視圖來解決的,也就是ScrowView;需要注意的是ScrowView中使用layout_weight是無效的,既然使用ScrowView了,就把它里面的控件的大小都設成固定的吧。 此外關于圖片的自適應問題,主要是2點,一個是9patch圖,這個東西大家都要學會去做,不難;不過有些編譯器在識別9patch圖時會出這樣那樣的bug,像我的Eclipse就不認這個,而同一個9patch圖在別的電腦上卻是沒問題的, 第二個要說的是我曾經被困擾的一個問題,對于480x800?和?480x854這兩個尺寸,他們顯示同一個圖片時,總有一個會拉伸(如果9patch可以解決的還好)。其實當初困擾我的是,這兩個尺寸都是hdpi的,以為無法給這兩個屏幕做不同的圖片。后來無意中發現,圖片可以和布局一樣分多個尺寸的,而不僅僅是根據密度分,也就是說你可以寫這樣的文件夾drawable-hdpi-800x480和drawable-hdpi-854x480,在它們里面放不同的圖片,這樣圖片也能自適應了。

轉載于:https://www.cnblogs.com/Alvison/archive/2012/08/08/capability.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的APP性能之终端兼容的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。