Android-диалог смотри и чувствуй - PullRequest
1 голос
/ 02 сентября 2011

После применения последнего обновления к моему Samsung GalaxyTab 10.1 я получил «новый» вид диалогов, которые я создал в коде.Я предположил, что это скин Samsung, и я мало что мог с этим поделать (честно говоря, я действительно чувствовал, что не должен игнорировать внешний вид по умолчанию).

Обновление:

  • Версия Android 3.1
  • Версия ядра 2.6.36.3 se.infra@SEP-63 # 1
  • Номер сборкиHMJ37.UEKME P7510UEKME

Однако я заметил, что в Android Market App все еще есть диалоговое окно предыдущего стиля (у них есть синие линии вверху и тонкие разделители между кнопками).

Приводит меня к двум вопросам:

  1. Программно, есть ли возможность избежать скинов или изменений, которые были добавлены / включены?Например, по умолчанию к оригиналу?Или мне нужно настроить свой собственный стиль для этого?

  2. UI / UX, вы считаете, что мы должны использовать скин или нет?Хотя я понимаю, что это мнение, как опытные разработчики Android, это похоже на одну из многих проблем фрагментации, с которыми нам приходится сталкиваться, и мне любопытно ожидания других.

Я создаю диалог в onCreateDialog из DialogFragment

return new AlertDialog.Builder(getActivity())
            .setTitle(getString(R.string.AddMetTitle))
            .setView(v)
            .setPositiveButton(android.R.string.ok,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                            //do some stuff - removed
                        }
                    }
            )
            .setNegativeButton(android.R.string.cancel,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                            //dismiss 
                        }
                    }
            )
            .create();

Ответы [ 2 ]

0 голосов
/ 02 сентября 2011

вы можете извлечь ресурсы Dialog по умолчанию из макета и папки drawables внутри вашей платформы SDK / папки {версия ОС}. Если вы включите эти ресурсы в свое приложение и заставите свои диалоги использовать их, диалоги будут выглядеть одинаково на всех устройствах. Если вы не предоставите свои собственные (даже если «ваши собственные» являются просто копиями по умолчанию) ресурсы, я не думаю, что у вас есть какой-либо контроль над тем, как он будет выглядеть в конечном итоге из-за различных скинов на разных устройствах.

Редактировать: Вот некоторые из ресурсов, которые я не уверен, если это все, что вам нужно, чтобы получить его полностью раздутым.

http://dl.dropbox.com/u/5724095/Android%20Apps/dialog_res.zip

0 голосов
/ 02 сентября 2011

на вашем месте я бы просто установил макет диалога на что-то нестандартное с помощью setcontentview ()

...