передача ссылки layout_weight из измерений (измерения) - PullRequest
27 голосов
/ 27 февраля 2012

Мне нужно установить разные веса компоновки для устройств с разным размером экрана, и я хочу передать значения из файла Dimensions, проблема в том, что ссылка из файла Dimensions продолжает выдавать ошибки

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>

Как передать значение из файла измерений для layout_weight? Спасибо

Ответы [ 2 ]

50 голосов
/ 10 декабря 2012

Вместо измерений вы можете использовать integer для объявления и ссылки на целые числа.

Пример объявления в integer.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>
3 голосов
/ 27 февраля 2012

Я не думаю, что вы можете сделать это.Документация в файле xml говорит просто float (без dimension), в отличие от layout_width, например, где у вас есть dimension.

Вы можете просто использовать жестко закодированное значение float в различныхмакеты, зависящие от экрана.

...