Ich habe ein Problem mit der Dialog.Builder
, wo die Tasten abgeschnitten sind. Wie kann ich dies beheben oder ist dies ein Problem für Motorola-Geräte?Android 5.x: Warum schneidet Dialog.Builder den Text ab?
- macht den Text kürzer ist keine Lösung
- ich das gleiche Verhalten wie der S5-Screenshot, Buttons zu lang erwarten -> Tasten untereinander
Gerät: Motorola Moto G/OS: Android 5.0.2
Device: Galaxy S5/OS: Android 5.0.2
Hier ist der Code und Themen für den Dialog zeigt
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>
########################
UPDATE EDIT
Scheint, das Verhalten auf jedem Gerät ist nicht das gleiche. Wir haben ein zweites Problem, indem wir den "neutralen" Knopf hinzufügen. Wiederum Galaxy S5 Tasten untereinander Zugabe (von oben nach unten: positiv, neutral oder negativ)
Motorola Moto G (API 5.0.2/links) zeigt neutral Knopf in die Mitte (rotes "Abbrechen") und schneidet erneut den Schaltflächentext (blauer Pfeil).
Nexus 4 (API 4.3/rechte Seite) zeigt die neutrale Taste auf der linken Seite, statt in der Mitte
Scheint, wie wir einen benutzerdefinierten Dialog zu implementieren ....
Ich denke, das Problem ist, dass die Textlänge Fensterlänge überschreitet. Sie können keinen Text länger als diese Container-Dimension einfügen. – Giuseppe
@Giuseppe: Ja, der Text ist zu lang. Das Problem ist, warum behandelt Galaxy S5 dieses Recht (Schaltflächen untereinander gezeigt), während dieses erwartete Verhalten nicht auf Motorola funktioniert ?! – longilong
ah ok, du hast das nicht angegeben. Ich dachte, es wäre deine Alternative, um dieses Problem zu lösen. Vielleicht liegt das Problem an Ihrem Hörer und die Maschine baut den Code falsch! Was sind onClickPositive und onClickNegative? – Giuseppe