簡體   English   中英

不同API級別之間的Android布局差異

[英]Android Layout Difference Between Different API Levels

我的問題圍繞一個具體示例代表的一般問題。

當我創建帶有以下標記的按鈕時:

<Button
        android:id="@+id/btnLookup"
        style="?android:attr/buttonStyleSmall"
        android:layout_height="match_parent"
        android:layout_width="40dp"
        android:layout_weight="1"
        android:enabled="false"
        android:text="@string/go_button"
        android:textColor="@color/black" />

並將該應用程序部署到API Level 10設備,該按鈕的高度大大小於部署到API Level 17設備上的同一按鈕的高度-也就是說,較小的按鈕不會填充其他項的高度它是水平對齊的襯里布局,而較大的版本則是。

我不確定這可能與fill_parent與match_parent有關。

我遇到的問題是如何定義一個布局,使整個設備的基本屬性都一樣。

如果答案是肯定的,那么您不會-使用多個布局文件,那么我的下一個問題是人們會使用哪些資源來淘汰這些內容? 例如,是否有清單列出了api級別之間的差異,以便某人可以查閱它,而我們其他人是否只是通過反復試驗就避免了這些事情?

從一台設備到另一台設備的布局渲染差異與設備上運行的Android版本無關。 但是,差異可能是(並且主要是由於)不同的屏幕密度和尺寸。

在確定視圖尺寸時,通過使用dp (密度像素)而不是px (像素)可以在某種程度上消除此問題。 您可以通過對不同的屏幕密度使用不同的dimens.xml來進一步減少dimens.xml 這樣,您將在values-mdpi內有一個dimens.xml ,在values-hdpi內有另一個,而在values-xhdpi

我更喜歡另一種方法。 我喜歡使用屏幕尺寸來處理項目的位置。 我在運行時獲取屏幕的寬度和高度,並以編程方式向布局項目添加邊距和填充。

// Get screen dimensions

// Add a ViewTreeObserver.OnGlobalLayoutListener() to the view

    // Update height and width for items

    // Position items using screenWidth and screenHeight 

這有點愚弄了渲染。 不知道這種方法在某些情況下是否會失敗。

編輯:

您可以通讀“提供資源”以了解android用於確定給定設備/情況的最佳可能資源的標准。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM