lon*_*ngi 21 android android-alertdialog
我有一个问题,Dialog.Builder按钮被切断.
我该如何解决这个问题,或者这是摩托罗拉设备的问题?
设备:摩托罗拉Moto G/OS:Android 5.0.2

设备:Galaxy S5/OS:Android 5.0.2

这是显示Dialog 的代码和主题
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>
Run Code Online (Sandbox Code Playgroud)
########################
更新编辑
好像,每个设备上的行为都不一样.我们有第二个问题,添加了"中性"按钮.同样,Galaxy S5互相添加按钮(从上到下:正面,中性,负面)
摩托罗拉Moto G(API 5.0.2 /左侧)在中间显示中性按钮(红色"Abbrechen")并再次剪切按钮文本(蓝色箭头).
Nexus 4(API 4.3 /右侧)显示左侧的中性按钮,而不是中间的按钮
好像我们必须实现自定义对话框....
小智 1
您是否尝试过使用 Dialog 来代替?
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.custom);
dialog.setTitle("Title...");
// set the custom dialog components - text, image and button
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Android custom dialog example!");
// make 3 buttons instead of one
Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//do something
}
});
dialog.show();
Run Code Online (Sandbox Code Playgroud)
建议:对话框使用线性布局。
| 归档时间: |
|
| 查看次数: |
1789 次 |
| 最近记录: |