android AllertDialog 没有边距 - 这是什么原因造成的?也许风格问题?
android AllertDialog doesn't have margin - What can cause this? maybe style issue?
我想显示一个 AlertDialog in the onCreate function of my AppCompatActivity,但出于某种原因,它周围没有边距。看图:
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//These are just some setters in the company code
MyApplication.setActivity(this);
setTheme(R.style.AppTheme);
setContentView(R.layout.activity_splash_screen);
Intent intent = getIntent();
String action = intent.getAction();
if(action != null && action.compareTo(Intent.ACTION_VIEW) == 0){
mHasContent = true;
mContentUri = intent.getData();
}else{
mHasContent = false;
}
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
initViews();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("title");
builder.setMessage("message");
builder.create().show();
}
我不知道是什么导致了问题,对话框在我的代码的其他地方正确显示。
(我试图将它放入 onResume 中,但它不起作用。我只想在 activity 创建时显示它,这就是我尝试使用 onCreate 的原因。)
我的自定义 AppTheme 会导致问题吗?如果你这么认为,我附上我的 styles.xml 的相关部分:
...
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
...
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="toolbarStyle">@style/Toolbar</item>
<item name="android:windowAnimationStyle">@style/WindowAnimationTransition</item>
...
</style>
...
我试图创建一个新项目并将所有上层代码(styles.xml 和所有其他代码)放入其中,但我无法重现该错误。还有什么可能导致问题?
请问哪里有问题?谁能帮忙?
我还有一个应用程序 class 具有覆盖的 onCreate() 函数,我也尝试删除这些函数调用,但没有任何改变。 android 中是否还有其他地方可以影响此行为?我不知道整个代码,因为它是一个公司应用程序,所以也许是其他一些覆盖方法之类的?
删除这一行getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//全局声明对话框
AlertDialog dialog = null;
//在Actvity中调用函数显示Dialog
dialogShow();
//在onCreate()之外定义函数
void dialogShow() {
AlertDialog dialog = null;
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View dialogView = inflater.inflate(R.layout.education_dialoge_add_language, null);
dialogBuilder.setView(dialogView);
dialog = dialogBuilder.create();
dialog.show();
dialog.show();
}
我已经从清单文件的 activity 中删除了这一行,它解决了我的问题:
android:theme="@style/SplashScreen"
我不知道是什么原因造成的,所以如果有人能向我解释一下,我将不胜感激!
我想显示一个 AlertDialog in the onCreate function of my AppCompatActivity,但出于某种原因,它周围没有边距。看图:
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//These are just some setters in the company code
MyApplication.setActivity(this);
setTheme(R.style.AppTheme);
setContentView(R.layout.activity_splash_screen);
Intent intent = getIntent();
String action = intent.getAction();
if(action != null && action.compareTo(Intent.ACTION_VIEW) == 0){
mHasContent = true;
mContentUri = intent.getData();
}else{
mHasContent = false;
}
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
initViews();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("title");
builder.setMessage("message");
builder.create().show();
}
我不知道是什么导致了问题,对话框在我的代码的其他地方正确显示。
(我试图将它放入 onResume 中,但它不起作用。我只想在 activity 创建时显示它,这就是我尝试使用 onCreate 的原因。)
我的自定义 AppTheme 会导致问题吗?如果你这么认为,我附上我的 styles.xml 的相关部分:
...
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
...
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="toolbarStyle">@style/Toolbar</item>
<item name="android:windowAnimationStyle">@style/WindowAnimationTransition</item>
...
</style>
...
我试图创建一个新项目并将所有上层代码(styles.xml 和所有其他代码)放入其中,但我无法重现该错误。还有什么可能导致问题?
请问哪里有问题?谁能帮忙?
我还有一个应用程序 class 具有覆盖的 onCreate() 函数,我也尝试删除这些函数调用,但没有任何改变。 android 中是否还有其他地方可以影响此行为?我不知道整个代码,因为它是一个公司应用程序,所以也许是其他一些覆盖方法之类的?
删除这一行getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
//全局声明对话框
AlertDialog dialog = null;
//在Actvity中调用函数显示Dialog
dialogShow();
//在onCreate()之外定义函数
void dialogShow() {
AlertDialog dialog = null;
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
View dialogView = inflater.inflate(R.layout.education_dialoge_add_language, null);
dialogBuilder.setView(dialogView);
dialog = dialogBuilder.create();
dialog.show();
dialog.show();
}
我已经从清单文件的 activity 中删除了这一行,它解决了我的问题:
android:theme="@style/SplashScreen"
我不知道是什么原因造成的,所以如果有人能向我解释一下,我将不胜感激!