Android ActionBar 问题不同 API < > 21
Android ActionBar issue different API < > 21
基于不同 API 的 ActionBar NullPointerException 有问题。我所有的活动都扩展 Activity
.
这是我的代码:
Gradle
minSdkVersion 17
targetSdkVersion 23
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:design:23.1.1'
样式:
<style name="AppTheme" parent="Theme.AppCompat.Light">
样式(值-v21):
<style name="AppTheme" parent="android:Theme.Material.Light">
Activity:
ActionBar actionBar = getActionBar();
assert actionBar != null;
actionBar.hide();
它在 API23 上工作正常,但在较低的 NullPointerException
上工作。
阅读其他类似问题,尝试使用 ActionBarActivity
(已弃用)、AppCompatActivity
、SupportActionBar
,但我无法让它在不同的 API 上工作。
有什么建议吗?任何帮助将非常感激。提前致谢。
尝试扩展 AppCompatActivity 并使用 getSupportActionBar()
你应该:
- 使用
AppCompatActivity
- 使用
getSupportActionBar()
代替getActionBar()
- 对所有设备使用相同的主题
Theme.AppCompat.Light
(删除 v21 中的 material 主题)
基于不同 API 的 ActionBar NullPointerException 有问题。我所有的活动都扩展 Activity
.
这是我的代码:
Gradle
minSdkVersion 17
targetSdkVersion 23
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:design:23.1.1'
样式:
<style name="AppTheme" parent="Theme.AppCompat.Light">
样式(值-v21):
<style name="AppTheme" parent="android:Theme.Material.Light">
Activity:
ActionBar actionBar = getActionBar();
assert actionBar != null;
actionBar.hide();
它在 API23 上工作正常,但在较低的 NullPointerException
上工作。
阅读其他类似问题,尝试使用 ActionBarActivity
(已弃用)、AppCompatActivity
、SupportActionBar
,但我无法让它在不同的 API 上工作。
有什么建议吗?任何帮助将非常感激。提前致谢。
尝试扩展 AppCompatActivity 并使用 getSupportActionBar()
你应该:
- 使用
AppCompatActivity
- 使用
getSupportActionBar()
代替getActionBar()
- 对所有设备使用相同的主题
Theme.AppCompat.Light
(删除 v21 中的 material 主题)