我正在某个项目上使用支持库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);
在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>
关于可能出错的任何提示?我认为它与样式有关,或者我可能无法在上面的API lvl上使用支持ActionBar。提前感谢。
答案 0 :(得分:9)
将android:windowNoTitle
与true
一起使用会隐藏您的ActionBar
答案 1 :(得分:6)
我得到了解决方案。我没有在问题中提供足够的信息,因此其他人可能很难提供帮助。但是,我不知道为什么会出现这个问题,我只是想知道如何解决它。该错误是由于应用程序标题。我从样式中删除了这个项目:
<item name="android:windowNoTitle">true</item>
以及代码中关于该标题栏的所有引用,如下所示:
requestWindowFeature(Window.FEATURE_NO_TITLE);
为什么要解决这个问题?还是不知道。如果有人能够解释它,它可能对我有用。
答案 2 :(得分:2)
如果您使用的是工具栏和AppCompat,那么您可能将android:windowNoTitle
设置为true,隐藏操作栏。在xml中创建工具栏,并在活动的onCreate()
中添加此代码。
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
答案 3 :(得分:1)
在Manifest文件中,检查您遇到问题的活动。 我的主题是&#34; NoActionBar&#34;属性。
删除它已解决此代码对我有用。
android:theme="@style/AppTheme.NoActionBar"