我正在开发一个Android应用程序。在某些情况下,我使用活动,在其他情况下,则使用AppCompatActivity。尽管我注意到一件事:
让我们以此类为例:
public class LoginActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
setTheme( android.R.style.Theme_Material_Dialog_NoActionBar_MinWidth);
}
}
}
当我将扩展类从Activity
更改为AppCompatActivity
时,输出将更改为:
为什么会这样?
答案 0 :(得分:0)
AppCompatActivity-为较早的设备提供“材质”颜色主题,小部件着色和应用栏支持。使用此类要求您使用Theme.AppCompat主题以实现一致的视觉呈现。
有关更多信息,请查看以下网址:https://developer.android.com/topic/libraries/support-library/features#v7-appcompat
简而言之:AppCompact活动使用了主题,为何会对其进行更改
活动将没有操作栏,因为默认情况下AppCompactActivity将具有操作栏。
答案 1 :(得分:0)
经过长时间的研究,我认为这是一个bug或Android主题决定将深色主题的对话框也保持白色。问题在于属性colorBackground
似乎不在指向{{1}的background_material_dark
上。
这是我的解决方法:
将以下信息添加到您的颜色中:
@color/material_grey_850
并进行设置。就我而言:
<color name="background_material_dark_public">@color/material_grey_850</color>