2012-03-30 10 views
8

Teraz używam MATCH_PARENT w całej mojej aplikacji. Zdecydowałem się zrobić aplikację dostępną dla użytkowników Androida 2.1 ale MATCH_PARENT nie jest wprowadzany do Androida 2.2FILL_PARENT i MATCH_PARENT

jaki sposób należy przejść o to zrobić, jeśli chcę mój app używać MATCH_PARENT gdy wersja Android 2.2 i powyżej ale użyj FILL_PARENT, jeśli jest 2.1 (lub niższy, jeśli zdecyduję się je później otworzyć)?

Odpowiedz

10

FILL_PARENT i MATCH_PARENT to samo, jeśli wersja użytkownik jest o 2.2 lub wyższy FILL_PARENT zostanie zastąpiony przez MATCH_PARENT automatycznie. Więc lepiej jest użyć FILL_PARENT, aby zapewnić kompatybilność wsteczną.
Na blogu na temat Androida pojawił się blog, mam nadzieję, że możesz go znaleźć, jeśli chcesz uzyskać więcej informacji na ten temat.

+1

Wow, nie wiedziałem, że zostanie automatycznie zastąpiony. Myślałem, że jeśli jest zdeprawowany, powinieneś go unikać za wszelką cenę. Dzięki! – dokgu

+0

@dokgu Co sprawia, że ​​myślisz, że _deprecated_ oznacza, że ​​trzeba to zrobić za wszelką cenę? Gdyby tak było, nie byłoby ścieżki migracji. –

2

Cóż, robią dokładnie to samo, po prostu zmienili składnię na wersję 2.2+. Powiedziałbym, że po prostu używaj FILL_PARENT zawsze, aby zawsze działało, jeśli planujesz wspierać wersję 2.1 lub niższą.

+0

Dzięki za informacje! – dokgu

2

Nie powinieneś już używać fill_parent, nawet jeśli obsługujesz Androida 2.1 lub mniej. Być może wiesz, że kompilator Java konwertuje stałe, takie jak FILL_PARENT lub MATCH_PARENT, na ich wartości statycznie w plikach klas. Dzieje się tak również w przypadku plików XML układu.

Jeśli nie wierzysz w to, spróbuj użyć emulatora (należy zadeklarować android:minSdkVersion="4" w AndroidManifest.xml).

Powiązane problemy