После применения последнего обновления к моему Samsung GalaxyTab 10.1 я получил "новый" вид для созданных в коде диалогов. Я предположил, что это была кожа Samsung, и я не мог с этим поделать (честно говоря, я действительно чувствовал, что не должен переопределять внешний вид по умолчанию).
Обновление:
Однако я заметил, что приложение Android Market по-прежнему имеет предыдущий диалог стиля (у них есть синие линии вверху и тонкие разделители между кнопками).
Отвечает мне на два вопроса:
Программно, есть ли возможность избежать какой-либо скины или изменений, которые были добавлены/включены? Например, по умолчанию оригинал? Или мне нужно настроить свой стиль для этого?
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();
вы можете вытащить ресурсы Dialog по умолчанию из папок макета и чертежей внутри вашей платформы SDK/{OS version}. Если вы включите эти ресурсы в свое приложение и сделаете ваши диалоги, они будут выглядеть одинаково на всех устройствах. Если вы не предоставите свои собственные (даже если "ваши собственные" являются только копиями по умолчанию), я не думаю, что вы можете контролировать, что это будет выглядеть, потому что они отличаются друг от друга на разных устройствах.
Редактирование: Вот некоторые из ресурсов, которые я не уверен, если это все, что вам нужно, чтобы получить его полностью завышенным.
http://dl.dropbox.com/u/5724095/Android%20Apps/dialog_res.zip
если бы я был вами, я бы просто установил макет диалога на что-то обычное с помощью setcontentview()