我在库项目中有一个活动,可能会也可能不会显示为对话框。如果是,我想设置它的高度和宽度。有没有办法在onCreate中确定当前主题是对话框?
答案 0 :(得分:1)
您可以使用反射 - 只需从onCreate()调用此方法。
public boolean isDialog() {
boolean isDialog;
try {
Method method = ContextThemeWrapper.class.getMethod("getThemeResId");
method.setAccessible(true);
int themeResId = (Integer) method.invoke(this);
// TODO: replace Theme_Dialog with the Theme you're using
isDialog = themeResId == android.R.style.Theme_Dialog;
} catch (Exception e) {
// Error getting theme resource ID
isDialog = false;
}
return isDialog;
}
答案 1 :(得分:0)
我最终决定开展两项活动,一项名为WizardActivity,另一项名为WizardDialog。我在库中有样本如何在清单中设置这些样本,并且由开发人员使用我的库来确保主题是正确的。