2012-03-30 2 views
8

Сейчас я использую MATCH_PARENT на всем своем приложении. Я решил сделать приложение доступным для пользователей Android 2.1, но MATCH_PARENT не введен до Android 2.2FILL_PARENT и MATCH_PARENT

Как мне это сделать, если я хочу, чтобы мое приложение использовало MATCH_PARENT, когда версия Android 2.2 и выше но используйте FILL_PARENT, если он равен 2.1 (или ниже, если я решил открыть его позже)?

ответ

10

FILL_PARENT и MATCH_PARENT - это то же самое, если версия, имеющаяся у пользователя, равна 2.2 или выше FILL_PARENT будет автоматически заменена на MATCH_PARENT. Так что лучше использовать FILL_PARENT, чтобы поддерживать обратную совместимость.
Был блог на сайте Android dev об этом, я надеюсь, вы можете его найти, если хотите получить более подробную информацию об этом.

+1

Вау, я не знал, что он автоматически заменяется. Я думал, что если это лишено, вы должны избегать его любой ценой. Благодаря! – dokgu

+0

@dokgu Что заставляет вас думать, что _deprecated_ означает, что нужно его вообще избегать? Если бы это было так, не было бы пути миграции. –

2

Ну, они делают то же самое, они просто изменили синтаксис на 2.2+. Я бы сказал, просто используйте FILL_PARENT всегда, чтобы он всегда работал, если вы планируете поддерживать 2,1 или ниже.

+0

Благодарим за информацию! – dokgu

2

Больше не нужно использовать fill_parent, даже если вы поддерживаете Android 2.1 или ниже. Вы можете знать, что компилятор Java будет преобразовывать константы, такие как FILL_PARENT или MATCH_PARENT в их значения, статически в файлах классов. Это также происходит при размещении XML-файлов.

Если вы этому не верите, просто попробуйте его на эмуляторе (вы должны объявить android:minSdkVersion="4" в AndroidManifest.xml).

Смежные вопросы