当我在setContentView(myView)
中调用AppCompatActivity
方法时,不是直接设置它,而是调用某种委托,由于某种原因将其包装在一些不需要的布局中。但是,我需要它是装饰视图的直接孩子。我已经通过主题禁用了操作栏和窗口标题,遗憾的是没有帮助。如果我执行((ViewGroup)getWindow().getDecorView()).addView(myView)
该应用程序在启动时立即崩溃,当所述委托尝试使用其不需要的布局执行某些操作并找到我的视图而不是它们时。最糟糕的是,这样的行为绝对没有记录,我在调试时发现自己在试图理解为什么系统忽略了我的根内容视图setFitsSystemWindows(true)
上的DrawerLayout
。
有没有办法完全禁用此行为?如果不是,在使用appcompat布局inflater时是否有任何方法可以使用系统Activity
类来支持前Lollipop上的每个视图主题?
我不支持比ICS更早的东西,我在片段中使用工具栏(不将它们设置为操作栏)所以我实际上并不需要任何appcompat的活动相关内容应用;为我扩展AppCompatActivity
的唯一原因是它的布局不足。
答案 0 :(得分:1)
你试过AppCompatDelegate吗?它是一个帮助程序,为您提供compat行为,而无需您扩展AppCompatActivity。但是,它可能会在您的布局中应用相同的包装图案(我自己也没有尝试过),但无论如何都值得一看。