1

我就像在一个恶性循环中。我正在尝试在我的应用程序中实现 MVVM 模式,但要以下一种方式实例化 ViewModel:

ViewModel loginViewModel = new ViewModelProvider(this).get(LoginViewModel.class);

有必要扩展 AppCompat,但是当我在 BaseActivity 类中扩展 AppCompatActivity 时,我得到一个类型的异常:

"You need to use a Theme.AppCompat theme (or descendant) with this activity"

问题是我不能在清单中使用 AppCompat 主题,因为我已经在使用

android:theme="@style/Theme.myTheme.TitleBar"

标题栏:

<resources>
  <!--parent="@style/Theme.AppCompat"-->
  <style name="Theme.myTheme.TitleBar" parent="android:Theme">
    <item name="android:windowTitleSize">50dip</item>
  </style>
</resources>

然后我在代码中配置 ActionBar,然后在 BaseActivity 中配置:

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

所以我不知道如何将扩展 AppCompatActivity 与自定义标题功能结合起来。

编辑1:回复@CommonsWare

如果我设置

android:theme="@style/Theme.AppCompat.NoActionBar"

在我的清单文件中,然后我得到下一个异常:

"You cannot combine custom titles with other title features"

应用程序启动后,在创建抽屉菜单容器的下一段代码的第一行中:

// HACK: "steal" the first child of decor view
ViewGroup decor = (ViewGroup) ((Activity)context).getWindow().getDecorView();
View child = decor.getChildAt(0);
decor.removeView(child);
FrameLayout container = drawer.findViewById(R.id.container); // This is the container we defined just now.
container.addView(child);

所以我想还没有运气:(

4

0 回答 0