AlertDialog:顶部边距
AlertDialog: Margin on top
我的 AlertDialog 在顶部显示了额外的边距,而我没有声明它。
import android.support.v7.app.AlertDialog;
AlertDialog.Builder builder = new AlertDialog.Builder(this.act);
builder.setView(R.layout.dialog_progress);
builder.setCancelable(false);
builder.setNegativeButton(R.string.cancel, null);
builder.create().show();
dialog_progress.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
android:indeterminateTint="@color/colorPrimary"/>
<TextView
style="@style/TextView.Medium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="@string/fetching_location"/>
</LinearLayout>
我的应用程序的其他对话框看起来还不错。
经过几个小时的搜索,我终于找到了为什么我的对话框布局如此奇怪:
AndroidStudio 从包 android.support.v7.app
中导入了 AlertDialog。我在我的应用程序中使用的其他对话框是从包 android.app
中导入的。更改导入后一切正常:
(改变了重力并添加了一些轻微的填充)
也许这会对遇到同样问题的每个人有所帮助。
使用windowNoTitle:
- 为 AlertDialog 创建样式:
<style name="AlertDialogCustom" parent="@android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="android:background">#ffffff</item>
<item name="android:textColorPrimary">#000000</item>
<item name="android:textColor">@000000</item>
<item name="android:typeface">monospace</item>
<item name="android:textSize">12sp</item>
</style>
在创建 AlertDialog 时定义此样式
AlertDialog.Builder builder = new AlertDialog.Builder(container.getContext(), R.style.AlertDialogCustom);
我的 AlertDialog 在顶部显示了额外的边距,而我没有声明它。
import android.support.v7.app.AlertDialog;
AlertDialog.Builder builder = new AlertDialog.Builder(this.act);
builder.setView(R.layout.dialog_progress);
builder.setCancelable(false);
builder.setNegativeButton(R.string.cancel, null);
builder.create().show();
dialog_progress.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
android:indeterminateTint="@color/colorPrimary"/>
<TextView
style="@style/TextView.Medium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="@string/fetching_location"/>
</LinearLayout>
我的应用程序的其他对话框看起来还不错。
经过几个小时的搜索,我终于找到了为什么我的对话框布局如此奇怪:
AndroidStudio 从包 android.support.v7.app
中导入了 AlertDialog。我在我的应用程序中使用的其他对话框是从包 android.app
中导入的。更改导入后一切正常:
也许这会对遇到同样问题的每个人有所帮助。
使用windowNoTitle:
- 为 AlertDialog 创建样式:
<style name="AlertDialogCustom" parent="@android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="android:background">#ffffff</item>
<item name="android:textColorPrimary">#000000</item>
<item name="android:textColor">@000000</item>
<item name="android:typeface">monospace</item>
<item name="android:textSize">12sp</item>
</style>
在创建 AlertDialog 时定义此样式
AlertDialog.Builder builder = new AlertDialog.Builder(container.getContext(), R.style.AlertDialogCustom);