2013-09-26 3 views
2

У меня есть XML, который использует следующие отступы в макете:Android устройств Изменение горизонтального отступа сама себя во время выполнения

android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 

где оба @dimen/activity_vertical_margin и @dimen/activity_horizontal_margin являются 14dp каждый.

В моем классе Java, я использую тост, чтобы увидеть, во время выполнения, чем фактические поля являются:

int vert = (int) getResources().getDimension(R.dimen.activity_vertical_margin); 
int horz = (int) getResources().getDimension(R.dimen.activity_horizontal_margin); 
Toast.makeText(getApplicationContext(), "vert: " + vert + "\n" + "horz: " + horz, Toast.LENGTH_LONG).show(); 

Я пробовал на 3-х различных устройств:

  1. Samsung Galaxy S4 (Android версия 4.2.2)
  2. Samsung Galaxy S3 (Android версии 4.1.2)
  3. Motorola XOOM (Android версии 4.1.2)

Для обоих галактик Samsung я получаю возвращаемое значение как для vert, так и для horz как 42. Это верно, являются ли устройства вертикальными или горизонтальными. (Почему они не равны 14, я не уверен, но до тех пор, пока они постоянны, я доволен.)

Однако для XOOM я получаю возвращаемое значение как для vert, так и для horz как 14, когда устройство вертикально. НО, когда я поворачиваю его на горизонтальный, vert остается на 14 и horz становится 128 (почти в 10 раз больше его вертикального значения).

Мой вопрос: почему это автоматическое изменение во время выполнения? В коде нет ничего, что ссылается на него и меняет его (я знаю это, потому что другие устройства не имеют этой проблемы).

Как правило, мне было бы неинтересно об этом, но в этом случае мой пользовательский интерфейс выглядит довольно напуганным. Я просмотрел его, но это не похоже на то, что кто-то еще имеет изменения полей на них во время выполнения.

ответ

1

В каждом проекте есть 2 dimen.xml. первый в папке значений, а другой - в значениях-sw720dp-land. проверка значений-sw720dp-земля/dimen.xml мы имеем

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

Как Motorola XOOM (Android версии 4.1.2) является в 720 ландшафте устройства оно принимает значение Dimen из этого значения папки

+0

Fantastic! Именно в этом и была проблема. :) Благодаря! – user2323030