我为我的应用程序创建了自定义对话框。当我在普通的三星 Galary Ace 中运行该应用程序时,它在该设备中显示正确,但当我要在摩托罗拉 Atrix 中运行该应用程序时,自定义对话框看不到边框。. . 请查看带有我的自定义对话框的摩托罗拉 Atrix 模拟器的图像。
我是否必须删除自定义对话框的边框,或者我还需要做什么才能在任何设备中只看到我的自定义对话框?如果我必须从自定义对话框中删除边框然后让我知道如何?
谢谢。
我为我的应用程序创建了自定义对话框。当我在普通的三星 Galary Ace 中运行该应用程序时,它在该设备中显示正确,但当我要在摩托罗拉 Atrix 中运行该应用程序时,自定义对话框看不到边框。. . 请查看带有我的自定义对话框的摩托罗拉 Atrix 模拟器的图像。
我是否必须删除自定义对话框的边框,或者我还需要做什么才能在任何设备中只看到我的自定义对话框?如果我必须从自定义对话框中删除边框然后让我知道如何?
谢谢。
是的,您可以通过删除边框来尝试。并设置requestWindowFeature(Window.FEATURE_NO_TITLE);
并确保您通过扩展它来使用不同的对话框类.fix the height and with for your dialog and then try
但正如你所说,它只在摩托罗拉设备上看起来不同。那么很难判断出了什么问题。我想与您分享的重要内容。我正在为摩托罗拉里程碑开发应用程序。完成后我安装在平板电脑中。然后对话框大小和外观也会发生变化。这不仅是自定义对话框,而且是没有设置属性的进度对话框,会发生变化。希望你明白我的意思。最后我想说对话框的行为有时会出乎意料。
已编辑
创建一个对话框类及其布局
public class DisplayDialog extends Dialog implements {
private ImageButton cancel,submit;
private Context context;
private ProgressDialog pd;
public DisplayDialog(Context c) {
super(c, R.style.Theme_Dialog_Translucent);
context = c;
}
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setCanceledOnTouchOutside(false);
setContentView(R.layout.dialog);
email_id = (EditText) findViewById(R.id.email_id);
cancel = (ImageButton) findViewById(R.id.btn_cancel);
cancel.setOnClickListener(this);
}
}
然后从活动中创建它的对象并在你想要的任何地方调用它
DisplayDialog dd=new DisplayDialog(this);
dd.show()
我知道这已经得到了回答,但我是这样做的......
我在我所有的摩托罗拉手机 X2、Razr 上都看到了这一点……似乎绝对是摩托罗拉风格中的一个错误。
我通过创建自己的样式并从我的 \android-sdk\platforms\android-10\data\res\drawable-hdpi 复制 panel_background 并将其放置在我的 drawable 中来修复它。如果我使用@android:drawable/panel_background 引用它,Eclipse 将无法编译。
样式.xml
<style name="Theme.CustomDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable/panel_background</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>
然后只需调用添加了 Theme 参数的对话框
Dialog dialog = new Dialog(this, R.style.Theme_CustomDialog);
已修复摩托罗拉问题!
问题是摩托罗拉风格存在一些问题,它们会覆盖默认的 Android 风格。因此,您应该再次覆盖此样式。
至于我,我创建了自己的主题并覆盖了android:windowBackground
参数。您可以使用自己的背景图片,但我只是从 Android 资源中获取默认图片。生成的样式如下所示:
<style name="Theme.GreenDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable/panel_background</item>
</style>