我使用alertdialog构建器创建了一个警告对话框。我想删除对话框左侧和右侧的空间......基本上是从一侧到另一侧延伸。我知道我可以使用活动而不是对话框,但我想保留按钮样式并在活动中实现该按钮样式需要为不同的SDK制作布局,从长远来看这是不方便的。
为什么我需要全宽? 因为我需要展示AdMob广告,如果它们不是全宽广告,则广告将无法加载。
感谢任何帮助,因为我尝试了各种主题属性......
谢谢, 阿德里安
PS:这是我目前创建对话框的代码:
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.DialogTheme));
alertDialogBuilder.setInverseBackgroundForced(true);
LayoutInflater inflater = this.getLayoutInflater();
View view = inflater.inflate(R.layout.dial_dialog, null);
AdView adView = (AdView) view.findViewById(R.id.adView);
if (!application.getLicense().isValid()) {
adView.loadAd(new AdRequestWrapper(this));
}
alertDialogBuilder.setView(view);
alertDialogBuilder.setTitle(R.string.dial_dialog_title).setCancelable(false);
alertDialogBuilder.setPositiveButton(R.string.dial_dialog_message_positive_text, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
alertDialogBuilder.setNeutralButton(R.string.dial_dialog_message_neutral_text, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
alertDialogBuilder.setNegativeButton(R.string.dial_dialog_message_negative_text, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
alertDialog.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
PS2:这是一张我需要的图片...... http://www.tiikoni.com/tis/view/?id=f3aed38 我需要用红色松开所有空间。我对黄色标记的空间没有任何问题。 (它可以保留或可以删除)
答案 0 :(得分:0)
1)创建自己的对话框,从Dialog和构造函数集样式扩展,如下所示:
public MyDialog(Context c, Event e) {
super(c, android.R.style.Theme_Light);
}
或
2)创建instanse时,设置样式:
Dialog dialog = new Dialog(this, R.style.MyDialogTheme);
示例here
答案 1 :(得分:0)
我知道有点迟到回答,但是根据here的食谱,我设法解决了几乎所有问题。基本上我有以下Dialog主题:
<style name="DialogTheme" parent="android:Theme.Holo.Light.Dialog">
<item name="android:windowBackground">@drawable/screen_background_selector_light</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowMinWidthMajor">100%</item>
<item name="android:windowMinWidthMinor">100%</item>
</style>
请注意对screen_background_selector_light的引用,这意味着我还必须添加screen_background_selector_light.xml和(它的依赖关系background_holo_light.xml)。
我只需要指定活动的其他内容将使用这个新主题:
<activity android:name=".zom.xyz.app.activity.MyActivity_" android:label="@string/activity_title" android:theme="@style/DialogTheme"/>
当然,将其创建为任何其他活动。
至于其他需要我有......简单的按钮我这样做了。这是活动的布局
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">
INSERT_DIALOG_CONTENT_HERE
</RelativeLayout>
<LinearLayout
style="?android:attr/buttonBarStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/cancelButton"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="fill_vertical"
android:layout_weight="1"
android:text="@string/activity_message_negative_text"/>
<Button
android:id="@+id/skipButton"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="fill_vertical"
android:layout_weight="1"
android:text="@string/activity_message_neutral_text"/>
<Button
android:id="@+id/correctButton"
style="?android:attr/buttonBarButtonStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="fill_vertical"
android:layout_weight="1"
android:text="@string/activity_message_positive_text"/>
</LinearLayout>
使用此布局和主题将为您提供完整宽度的对话框的确切感觉。