当前位置: 首页 > 知识库问答 >
问题:

导航抽屉图标(ic_抽屉)未显示

梁韬
2023-03-14

我正在为我的应用程序实现一个导航抽屉。现在,除了一个小故障外,它工作正常。当我设置导航抽屉图标(ic_Drawer)来替换常规的“HomeAsUp”插入符号图标时,我仍然得到箭头。导航抽屉图标不显示。我已经实现了android开发者网站上的每一种方法。但它似乎不起作用。

以下是我的代码:

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);
}

共有3个答案

晏鸿畅
2023-03-14

您必须输入以下代码

getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeAsUpIndicator(R.drawable.ic_drawer);

getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_drawer);

我希望这段代码能帮助你。

糜宜民
2023-03-14

只需将此代码放入您的styles.xml文件中:

<item name="homeAsUpIndicator">@drawable/ic_drawer</item>
<item name="android:homeAsUpIndicator">@drawable/ic_drawer</item>

我也有同样的问题,这对我很有效。

编辑

您可以通过编程设置:getSupportActionBar()。setHomeAsUpIndicator(R.drawable.ic_抽屉)

朱明知
2023-03-14

我知道现在回答这个问题已经很晚了,但这至少会帮助一些人。

您可能应该添加这些代码行来显示导航图标。

@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);
}
 类似资料:
  • 在sherlock actionbar中使用导航抽屉,但我无法让3行图标(像gmail一样)显示出来,而不是正常的向上按钮“<”。这是我的代码ic_drawer是gmail使用的3行图标

  • 有人能告诉我如何创建活动到这个主要活动,导航抽屉将看到在所有他们?我需要使用这个特定的MainActivity代码。我不需要使用碎片,只要3个简单的活动将添加到这个抽屉。 NavDrawer布局:

  • 问题内容: 我有一个2活动和一个服务,首先我有导航抽屉,并且标题中有2个textview,有时我必须更改它们的文本,在服务中我需要一些数据。 第一次运行时一切都很完美,但是当我从第二个转到第一个活动,我在textviews中有nullpointerexception。是什么原因造成的,以及如何解决? 和 和 错误 问题答案: 要在Navigation Drawer的标题中成功找到任何小部件,您需要

  • 我正在用最新的appcompat支持库实现Lollipop风格的导航抽屉,但问题是汉堡包图标从未显示。仅显示后退图标。 这是我的活动代码 这是我的样式文件 布局文件 在这两种情况下,只有返回箭头显示,我读了很多帖子,但似乎没有什么不同。任何帮助都将不胜感激。

  • 我想在ActionBar的右侧[而不是默认的左侧]显示ActionBar导航图标。 此外,我需要有相同的幻灯片在动画导航抽屉图标在Gmail和谷歌加应用程序。 有没有什么方法可以轻松实现右侧的动画。 任何形式的帮助或建议都是感激的。 提前道谢!

  • 我在将与和组合时遇到布局问题。 问题是,NavigationDrawer及其内容隐藏在工具栏后面。我已经做了很多研究,尝试了很多重组,但没有一个“解决方案”能解决我的问题。 在这个Webm小视频中可以找到一个演示:https://www.dropbox.com/s/i5zfc2x2ts2fws7/navigation_drawer_stackoverflow32523188.webm?dl=0 基