2013-07-25 16 views
6

Mam problem z pozornie niewytłumaczalnymi marginesami, które pojawiają się po lewej i prawej stronie moich układów podczas używania urządzenia Nexus 10 w trybie poziomym. Jestem pewien, że jest to coś zawstydzająco oczywistego, ale nie mogę znaleźć żadnej wzmianki o tym, kiedy szukałem.Android: Niepożądane lewe/prawe marginesy na Nexusie 10 w trybie poziomym

Jestem prawie pewien, że nie jest to związane z moim kodem, ponieważ domyślny projekt Hello World stworzony przez Eclipse wykazuje to zjawisko. Poniższe fragmenty screenshot pochodzą z zupełnie nowym projektem, a jedyną zmianą Zrobiłem to, aby TextView TEXTSIZE nieco większy dla jasności:

Comparison of landscape and portrait orientations on the Nexus 10

widać, że marginesy domyślne z XML układu plik (pokazany poniżej) jest poprawnie zastosowany w trybie pionowym, ale w trybie poziomym jest znaczny dodatkowy margines - zaznaczony czerwonym paskiem pod zrzutu ekranu.

<!-- Default screen margins, per the Android Design guidelines. --> 
<dimen name="activity_horizontal_margin">16dp</dimen> 
<dimen name="activity_vertical_margin">16dp</dimen> 

Czy ktoś jeszcze to widział lub ma pojęcie, jak się ich pozbyć? Nie wiem, od czego zacząć, ponieważ wydaje się, że jest to specyficzne urządzenie i orientacja ekranu. Dodatkowo ma wpływ na najprostszy możliwy program, jak również mój własny, więc nie ma sensu wyciągać z siebie własnego kodu, dopóki nie dowiem się, jak naprawić domyślny przypadek.
Te same ekrany wyświetlają się poprawnie na emulowanych urządzeniach i na moim Samsung Galaxy S2 (z uruchomionym Gingerbread). Zmiana celu budowy projektu z poziomu interfejsu API 17 na 10 również nie wpłynęła na niepożądany efekt. jakieś pomysły?

Odpowiedz

9

Ok, więc było to żenująco proste! Margines dla Nexusa 10 w trybie poziomym jest pobierana z folderu „wartości-sw720dp-land” zasobów, które deklaruje znacznie większą wartość:

<!-- 
    Customize dimensions originally defined in res/values/dimens.xml (such as 
    screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here. 
--> 
<dimen name="activity_horizontal_margin">128dp</dimen> 

Po prawie roku od czyhających na SO i znalezienie odpowiedzi na wszystkie moje pytania, pierwsze, które w końcu zdecyduję się zapytać, okazują się tak banalne, jak to ...

+1

Wielkie dzięki. Zajmowałem się tym problemem od wielu godzin. Zmieniłem każdą szerokość i margines we wszystkich moich układach i widokach w moich XML-ach i nic nie działało! – Tina

+0

Czy ktoś znalazł blog lub dokument wyjaśniający, dlaczego ta ogromna wartość 128dp jest używana w krajobrazie? Zauważyłem, że to już koniec na niektórych wersjach Androida (nawet w ustawieniach). –

0

Dzięki, danj1974! Oszczędziłeś dla mnie dużo czasu! Zmieniłem ustawienie w res/values-w820dp/dimens.xml na

<dimen name="activity_horizontal_margin">0dp</dimen> 

i działa dobrze.

+0

Czy nie jest prostsze usunięcie tej wartości z pliku "values-w820dp/dimens.xml"? – aga

+0

@aga, dobrze, dobry pomysł. Widzę plik wartości/dimens.xml. Istnieje również atrybut "activity_horizontal_margin" z wartością "0dp". – CoolMind