Toast.makeText (...). Show () иногда не выравнивается - PullRequest
5 голосов
/ 14 октября 2011

Я использую Toast.makeText для отображения результатов из диалогов и имею немного странную проблему: текст отображается над рамкой, которая должна его содержать, например:

Сообщение смещено по рамке.Пожалуйста, выровняйте это лучше.[ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ __ _ ___ ]

Обычно я использую код, похожий на

Toast bread = Toast.makeText(getContext(), R.string.message, Toast.LENGTH_LONG);
bread.show();

из диалогового окна.Я слышал, что плохой контекст может иногда вызывать проблемы с инфляцией, но getOwnerActivity() возвращает ноль, так что это не так.В любом случае, я бы подумал, что getContext () предоставит контекст, переданный во время создания, что в любом случае является действием.

Есть предложения?

Ответы [ 4 ]

21 голосов
/ 14 октября 2011

Вы можете попробовать это:

Toast bread = Toast.makeText(getApplicationContext(), R.string.message, Toast.LENGTH_LONG);
bread.show();
3 голосов
/ 14 октября 2011
bread.setGravity(5,5,5);

попробуйте поиграть, изменив эти значения, пока не получите точное местоположение.

Но использование Gravity.CENTER и других констант является предпочтительным способом ..

1 голос
/ 14 октября 2011

Попробуйте использовать,

<supports-screens
   android:largeScreens="true"
   android:normalScreens="true"
   android:smallScreens="true"
   android:anyDensity="true" /> 

в вашем файле манифеста.

1 голос
/ 14 октября 2011

Если вы создаете тост из действия, вы должны использовать: this или MyActivityName.this в качестве параметра контекста.

...