我正在使用DrawerLayout
我已经尝试使用他们的代码制作一个新项目并且它可以工作,但是!当我尝试将它应用到我的实际类中时,它不起作用.........它返回null
值。我用它就像..
ActionBar actionBar = getActionBar();
...
actionbar.setDisplayHomeAsUpEnabled(true);
actionbar.setHomeButtonEnabled(true);
我使用了主题:
<style name="AppThemeWithAction" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">@color/textColor</item>
<item name="colorControlActivated">@color/miBlue</item>
</style>
我研究过它可能是因为我没有TitleBar
,但它似乎不是那样......
如果我错过了解决问题的任何基本信息,请发表评论
更新:
我正在尝试不修改源代码,例如将ActionBar
更改为Toolbar
,因为我可能会在进程中破坏其他内容。
所以..我现在的问题是.. ActionBar
上的每个方法都可以用于Toolbar
吗?以前的酒吧有没有相当于后者的酒吧??
例如:
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, //nav menu toggle icon
R.string.app_name, // nav drawer open - description for accessibility
R.string.app_name // nav drawer close - description for accessibility
){
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
// calling onPrepareOptionsMenu() to show action bar icons
invalidateOptionsMenu();
}
public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mDrawerTitle);
// calling onPrepareOptionsMenu() to hide action bar icons
invalidateOptionsMenu();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
更改为Toolbar
会导致Kitkat及以下的兼容性问题吗?
答案 0 :(得分:2)
如果您使用的是AppCompat,无论您的应用运行哪个Android版本,都必须致电getSupportActionBar()
。
ActionBar actionBar =getSupportActionBar();
我建议您使用新的Toolbar
代替ActionBar
,因为使用起来更灵活。
答案 1 :(得分:0)
您必须将活动扩展为
public yourActivityName extends AppCompatActivity
然后使用
ActionBar actionBar = getSupportActionBar();
导入ActionBar
作为支持v7