Android获取支持操作栏始终返回NULL

Met*_*neo 8 android nullpointerexception android-support-library

我正在某个项目上使用支持库v7.我正在尝试像这样实例化支持操作栏:

ActionBar actionBar = getSupportActionBar();

    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    actionBar.setCustomView(R.layout.top_action_bar);
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setHomeButtonEnabled(true);
Run Code Online (Sandbox Code Playgroud)

在Android lvl低于11的Android设备上,一切正常.但是,在尝试在较新的设备上运行相同的代码时,例如带有Android 4+的Samsung Galaxy S4,getSupportActionBar()始终返回null,从而导致预期的崩溃.我正在使用这个样式文件:

<style name="my_style" parent="@style/Theme.AppCompat.Light">
    <item name="android:actionBarStyle">@style/my_style_ab</item>
    <item name="android:windowNoTitle">true</item>

</style>

<style name="my_style_ab" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:height">70dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

什么可能是错的暗示?我认为它与样式有关,或者我可能无法在上面的API lvl上使用支持ActionBar 11.提前感谢.

mic*_*zuk 9

使用android:windowNoTitlewith true隐藏你的ActionBar


Met*_*neo 6

我得到了解决方案.我没有在问题中提供足够的信息,因此其他人可能很难提供帮助.但是,我不知道为什么会出现这个问题,我只是想知道如何解决它.该错误是由于应用程序标题.我从样式中删除了这个项目:

        <item name="android:windowNoTitle">true</item>
Run Code Online (Sandbox Code Playgroud)

以及代码中关于该标题栏的所有引用,如下所示:

  requestWindowFeature(Window.FEATURE_NO_TITLE);
Run Code Online (Sandbox Code Playgroud)

为什么解决这个问题?还是不知道.如果有人可以解释它,它可能对我有用.