2012-02-27 63 views
26

我需要爲不同屏幕大小的設備設置不同的佈局權重,並且我想從維度文件傳遞值,問題是維度文件中的引用不斷拋出錯誤從維度(維度)傳遞layout_weight參考

error: Error: Integer types not allowed (at 'progress_widget_item3_weight' with value '9'). 

error: Error: Float types not allowed (at 'progress_widget_item3_weight' with value '9.1'). 

<dimen name="progress_widget_item3_weight">9</dimen> 

我如何通過從夢詩F的值ile爲layout_weight?謝謝

回答

49

代替維數,您可以使用integer來聲明和引用整數。

聲明示例中integers.xml:在佈局

<resources> 
    <integer name="left">1</integer> 
    <integer name="right">2</integer> 
</resources> 

實施例參考:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <FrameLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="@integer/left" /> 

    <FrameLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="@integer/right" /> 

</LinearLayout> 
+1

注意,使用@integer值layout_weight(其被指定爲接受'float'值)會導致在某些設備(如LG Optimus L1/L3,Samsung Galaxy Y/Neo和Blackberry Q10)上發生'java.lang.NumberFormatException:無效浮動錯誤。 – Nachi 2015-05-20 14:02:41

3

我不認爲你可以做到這一點。 xml文件中的文檔說明只有float(不是dimension),而不是layout_width,例如您有dimension

您可以在不同的屏幕相關佈局中使用硬編碼的float值。