2

我为我的应用程序创建了自定义对话框。当我在普通的三星 Galary Ace 中运行该应用程序时,它在该设备中显示正确,但当我要在摩托罗拉 Atrix 中运行该应用程序时,自定义对话框看不到边框。. . 请查看带有我的自定义对话框的摩托罗拉 Atrix 模拟器的图像。 在此处输入图像描述

我是否必须删除自定义对话框的边框,或者我还需要做什么才能在任何设备中只看到我的自定义对话框?如果我必须从自定义对话框中删除边框然后让我知道如何?

谢谢。

4

3 回答 3

3

是的,您可以通过删除边框来尝试。并设置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()
于 2011-12-13T11:41:15.260 回答
2

我知道这已经得到了回答,但我是这样做的......

我在我所有的摩托罗拉手机 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);

已修复摩托罗拉问题!

于 2012-05-11T19:32:46.707 回答
1

问题是摩托罗拉风格存在一些问题,它们会覆盖默认的 Android 风格。因此,您应该再次覆盖此样式。

至于我,我创建了自己的主题并覆盖了android:windowBackground参数。您可以使用自己的背景图片,但我只是从 Android 资源中获取默认图片。生成的样式如下所示:

<style name="Theme.GreenDialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowBackground">@drawable/panel_background</item>
</style>
于 2012-03-01T16:39:11.990 回答