抽屉式导航栏图标(ic_drawer)不显示 [英] Navigation Drawer Icon (ic_drawer) not showing

查看:641
本文介绍了抽屉式导航栏图标(ic_drawer)不显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在执行导航抽屉我的应用程序。现在它完美,除了一个小故障。当我设置的抽屉式导航图标(ic_drawer)来代替普通的HomeAsUp插入符号图标,我仍然得到箭头。资产净值抽屉图标不显示。我已经实现每一个是在Android开发者网站的方法。但它似乎并没有工作。

下面是我的code:

  DrawerLayout mDrawerLayout;
的FrameLayout leftDrawer,rightDrawer,contentFrame;
ActionBarDrawerToggle mDrawerToggle;

@覆盖
保护无效的onCreate(包savedInstanceState){
    super.onCreate(savedInstanceState);
    的setContentView(R.layout.activity_home);
    initializeViews();
}

私人无效initializeViews(){
    // TODO自动生成方法存根
    mDrawerLayout =(DrawerLayout)findViewById(R.id.mDrawerLayout);
    mDrawerToggle =新ActionBarDrawerToggle(这一点,
            mDrawerLayout,R.drawable.ic_drawer,
            R.string.drawer_open_content_desc,
            R.string.drawer_close_content_desc);

    getActionBar()setHomeButtonEnabled(真)。
    getActionBar()setDisplayHomeAsUpEnabled(真)。

    mDrawerLayout.setDrawerListener(mDrawerToggle);

    leftDrawer =(的FrameLayout)findViewById(R.id.drawerLeft_frame);
    rightDrawer =(的FrameLayout)findViewById(R.id.drawerRight_frame);
    contentFrame =(的FrameLayout)findViewById(R.id.content_frame);
}


@覆盖
保护无效onPostCreate(包savedInstanceState){
    // TODO自动生成方法存根
    super.onPostCreate(savedInstanceState);
    mDrawerToggle.syncState();
}

@覆盖
公共无效onConfigurationChanged(配置NEWCONFIG){
    // TODO自动生成方法存根
    super.onConfigurationChanged(NEWCONFIG);
    mDrawerToggle.onConfigurationChanged(NEWCONFIG);
}

@覆盖
公共布尔onCreateOptionsMenu(功能菜单){
    //充气菜单;这增加了项目操作栏,如果它是present。
    。getMenuInflater()膨胀(R.menu.home,菜单);
    返回true;
}

@覆盖
公共布尔onOptionsItemSelected(菜单项项){
    // TODO自动生成方法存根
    如果(mDrawerToggle.onOptionsItemSelected(项目)){
        返回true;
    }
    返回super.onOptionsItemSelected(项目);
}
 

解决方案

我知道这是相当晚来回答这个但这将帮助别人ATLEAST。

您也许应该补充的code这些行表明,导航图标。

  @覆盖
保护无效onPostCreate(包savedInstanceState){
    super.onPostCreate(savedInstanceState);
    //同步发生onRestoreInstanceState后切换状态。
    mDrawerToggle.syncState();
}

@覆盖
公共无效onConfigurationChanged(配置NEWCONFIG){
    super.onConfigurationChanged(NEWCONFIG);
    mDrawerToggle.onConfigurationChanged(NEWCONFIG);
}
 

I am implementing a navigation drawer for my app. Now it works perfectly except for one small glitch. When I set the Navigation Drawer Icon (ic_drawer) to replace the regular "HomeAsUp" caret icon, I still get the arrow. The Nav Drawer icon does not show. I have implemented every method that was on the android developers website. But it doesn't seem to work.

Below is my code:

DrawerLayout mDrawerLayout;
FrameLayout leftDrawer, rightDrawer, contentFrame;
ActionBarDrawerToggle mDrawerToggle;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    initializeViews();
}

private void initializeViews() {
    // TODO Auto-generated method stub
    mDrawerLayout = (DrawerLayout) findViewById(R.id.mDrawerLayout);
    mDrawerToggle = new ActionBarDrawerToggle(this,
            mDrawerLayout, R.drawable.ic_drawer,
            R.string.drawer_open_content_desc,
            R.string.drawer_close_content_desc);

    getActionBar().setHomeButtonEnabled(true);
    getActionBar().setDisplayHomeAsUpEnabled(true);

    mDrawerLayout.setDrawerListener(mDrawerToggle);

    leftDrawer = (FrameLayout) findViewById(R.id.drawerLeft_frame);
    rightDrawer = (FrameLayout) findViewById(R.id.drawerRight_frame);
    contentFrame = (FrameLayout) findViewById(R.id.content_frame);
}


@Override
protected void onPostCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onPostCreate(savedInstanceState);
    mDrawerToggle.syncState();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    // TODO Auto-generated method stub
    super.onConfigurationChanged(newConfig);
    mDrawerToggle.onConfigurationChanged(newConfig);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.home, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    if (mDrawerToggle.onOptionsItemSelected(item)) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

解决方案

I know it is quite late to answer this but this would help someone atleast.

You should probably add these lines of code to show that navigation icon.

@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    // Sync the toggle state after onRestoreInstanceState has occurred.
    mDrawerToggle.syncState();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    mDrawerToggle.onConfigurationChanged(newConfig);
}

这篇关于抽屉式导航栏图标(ic_drawer)不显示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆