Прохождение справки layout_weight из измерений (размеры)
Мне нужно установить различные веса макета для разных устройств размера экрана, и я хочу передать значения из файла dimens, проблема в том, что ссылка из файла dimens продолжает бросать ошибки
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>
Как передать значение из файла dimens для layout_weight? Спасибо вам
Ответы
Ответ 1
Вместо размеров вы можете использовать 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>
Ответ 2
Я не думаю, что вы можете это сделать. Документация в файле xml указывает только float
(no dimension
) в отличие от layout_width
, например, где у вас есть dimension
.
Вы можете просто использовать жестко закодированное значение float
в различных экранах, зависящих от экрана.