【发布时间】:2016-06-20 10:57:41
【问题描述】:
问题
如何以编程方式(不触及AndroidManifext.xml)设置Activity so that it looks like a dialog 的主题?
注意:我可以修改 AndroidManifext.xml,只要它不需要修改即可在使其看起来像正常活动或对话框之间切换。
到目前为止我已经尝试过什么
我根据this stackoverflow answer尝试了以下操作:
public class DialogActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
setTheme(android.R.style.Theme_DeviceDefault_Dialog);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialog);
Log.d(TAG,"Build.VERSION.SDK_INT: "+Build.VERSION.SDK_INT); // 23
}
}
但它最终是blacking out everything in the background。
我也看到this stackoverflow answer,试过了:
public class DialogActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
setTheme(android.R.style.Theme_DeviceDefault_Dialog);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialog);
getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
}
}
但它最终变成了everything black。
做什么?谢谢。
【问题讨论】:
-
@NguyenDoanTung 谢谢。我也看到了那篇帖子,但大多数答案都涉及修改我不想做的
AndroidManifest.xml。我尝试了stackoverflow.com/a/22216966/2898715 中提到的第一种方法,但没有产生我问题中提到的令人满意的结果。另外,谢谢你的github链接,我检查了,但我真的希望有一个更简单的解决方案。 -
@Eric 惊人地解决了这个问题,谢谢,发送了赏金。必须在清单中设置 Theme.AppCompat.Dialog。您只能在 onCreate 中设置自己的样式。这也是我的问题的答案:stackoverflow.com/a/67045156/294884
标签: java android android-activity android-dialog