1

当我setContentView(myView)在 an 中调用该方法时AppCompatActivity,它不是直接设置它,而是调用某种委托,该委托出于某种原因将其包装在一些不需要的布局中。但是,我需要它是装饰视图的直接子级。我已经通过主题禁用了操作栏和窗口标题,不幸的是这没有帮助。如果我这样做((ViewGroup)getWindow().getDecorView()).addView(myView),应用程序在启动时立即崩溃,当所述代表尝试对其不需要的布局进行操作并找到我的视图而不是它们时。最糟糕的是,这种行为绝对没有记录,我在调试时发现自己试图理解为什么系统会忽略setFitsSystemWindows(true)我的根内容视图(即 a DrawerLayout)。

有没有办法完全禁用这种行为?如果不是,是否有任何方法可以Activity在使用 appcompat 布局充气器时使用系统类以支持棒棒糖前的按视图主题?

我不支持比 ICS 更早的任何东西,并且我在片段中使用工具栏(没有将它们设置为操作栏),因此我的应用程序中实际上不需要任何 appcompat 的活动相关内容;对我来说扩展的唯一原因AppCompatActivity是它的布局充气器。

4

1 回答 1

1

你试过AppCompatDelegate吗?它是一个帮助器,可为您提供兼容行为,而无需您扩展 AppCompatActivity。但是,它很可能将相同的包装模式应用于您的布局(我自己还没有尝试过),但无论如何值得一看。

于 2015-07-08T18:52:19.627 回答