我想在AlertDialog的onCreate函数中显示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并且它不能正常工作。我只想在创建活动时显示它,这就是我尝试使用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和所有其他代码),我无法重现该错误。还有什么可以导致这个问题?
哪里可以出问题?有人可以帮忙吗?
我还有一个覆盖onCreate()函数的应用程序类,并尝试删除那些函数调用,但没有任何改变。 android中有其他地方可以影响这种行为吗?我不知道整个代码,因为它是一个公司的应用程序,所以也许其他一些覆盖方法或其他东西?
答案 0 :(得分:1)
删除此行getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
答案 1 :(得分:0)
//全局声明对话
AlertDialog dialog = null;
//在Actvity中调用显示对话框的功能
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();
}
答案 2 :(得分:0)
我已从清单文件中的活动中删除了这一行,它解决了我的问题:
android:theme="@style/SplashScreen"
我不知道是什么造成的,所以如果有人能向我解释,我会非常感激!