У меня проблема с Dialog.Builder
, где кнопки отключены.
Как я могу решить эту проблему или это проблема для устройств Motorola?
- сокращение текста не является решением
- Я ожидаю такого же поведения, как S5-скриншот, слишком длинные кнопки → Кнопки ниже друг друга
Устройство: Motorola Moto G/ОС: Android 5.0.2
Устройство: Galaxy S5/ОС: Android 5.0.2
Здесь код и тема для отображения диалога
public void showDialog(final String title, final String message,
final OnClickListener onClickPositive,
final OnClickListener onCLickNegative, final String positiveButton,
final String negativeButton, final boolean cancelable) {
if (!isFinishing()) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (dialog != null && dialog.isShowing()) {
dialog.cancel();
}
Builder builder;
if (android.os.Build.VERSION.SDK_INT >= 14) {
builder = new AlertDialog.Builder(new ContextThemeWrapper(
MyActivity.this,
android.R.style.Theme_DeviceDefault_Light_Dialog));
} else {
builder = new Builder(MyActivity.this);
}
if (title != null) {
builder.setTitle(title);
}
if (message != null) {
builder.setMessage(message);
}
if (positiveButton != null) {
builder.setPositiveButton(positiveButton, onClickPositive);
}
if (negativeButton != null) {
builder.setNegativeButton(negativeButton, onCLickNegative);
}
builder.setCancelable(cancelable);
dialog = builder.show();
colorizeDialog(dialog);
}
});
}
}
//theme-xml
<style name="Theme.DeviceDefault.Light.Dialog" parent="Theme.Holo.Light.Dialog" >
<item name="android:windowTitleStyle">@android:style/DialogWindowTitle.DeviceDefault.Light</item>
<item name="android:windowAnimationStyle">@android:style/Animation.DeviceDefault.Dialog</item>
<item name="android:buttonBarStyle">@android:style/DeviceDefault.Light.ButtonBar.AlertDialog</item>
<item name="borderlessButtonStyle">@android:style/Widget.DeviceDefault.Light.Button.Borderless.Small</item>
<item name="textAppearance">@android:style/TextAppearance.DeviceDefault.Light</item>
<item name="textAppearanceInverse">@android:style/TextAppearance.DeviceDefault.Light.Inverse</item>
</style>
########################
ИЗОБРАЖЕНИЕ ОБНОВЛЕНИЯ
Похоже, что на каждом устройстве поведение не одинаково. У нас есть вторая проблема с добавлением "нейтральной" кнопки. Опять же, Galaxy S5 добавляет кнопки друг под друга (сверху вниз: положительный, нейтральный, отрицательный)
Motorola Moto G (API 5.0.2/слева) показывает нейтральную кнопку посередине (красный "Аббречен" ) и снова нарезает текст кнопки (синяя стрелка).
Nexus 4 (API 4.3/правая сторона) показывает нейтральную кнопку слева, а не в середине
Похоже, нам нужно реализовать пользовательский диалог....