问题
如何通过编程的方式(而不是修改 AndroidManifext.xml
文件)设置一个 Activity
的主题,使其看起来像一个对话框?
注:只要不需要修改 AndroidManifext.xml
文件就可以在普通活动和对话框之间切换,我可以修改它。
我尝试过的
根据这个 stackoverflow 回答,我尝试了以下方法:
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
}
}
但它最终会使背景中的所有内容变黑。
我还看到了这个stackoverflow答案,并尝试了:
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));
}
}
但最终会使所有东西变成黑色。怎么办?谢谢。
AndroidManifest.xml
,而我不想这样做。我尝试了 https://dev59.com/jnI-5IYBdhLWcg3wMFMf#22216966 中提到的第一种方法,但是像我在问题中提到的那样,它并没有产生令人满意的结果。另外,谢谢你提供的 github 链接,我查看了它,但是我真的希望有一个更简单的解决方案。 - Eric