首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用NavigationView

如何使用NavigationView
EN

Stack Overflow用户
提问于 2019-08-24 07:34:31
回答 1查看 63关注 0票数 0

我有一个具有navigationViewtoolbar的活动(我手动设置了工具栏名)。

我的问题是,当我打开navigationView时,它就会退出活动,回到以前的活动。

我尝试了很多方法来发现这个问题,我发现当我不使用这一行时,问题已经解决了,导航菜单打开了,没有任何问题。

代码语言:javascript
复制
setSupportActionBar(toolbar);

我不知道是哪一个问题?工具栏还是导航?

注:风格没有什么特别之处。

活性:

代码语言:javascript
复制
Toolbar toolbar = findViewById (R.id.toolbar_StudentList);

        setSupportActionBar(toolbar);//Set actionBar with toolbar

        if(getSupportActionBar() != null)
        {
            getSupportActionBar().setDisplayShowTitleEnabled(false);//Remove actionBar title
            toolbar.setTitle(mClassEntry.getClassName());
        }

        DrawerLayout drawer = findViewById (R.id.drawerLayout_StudentList);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this , drawer , toolbar , 0b0, 0);
        toggle.syncState();

        NavigationView drawerItems = findViewById (R.id.navigationView_StudentList);
        drawerItems.setNavigationItemSelectedListener(item -> {
            .
            .
            .
        }

Xml :

代码语言:javascript
复制
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.user.classmanager.StudentActivity"
    android:id="@+id/drawerLayout_StudentList"
    style="@style/DrawerLayout_all"
    >

    <FrameLayout
        android:id="@+id/frameLayout_StudentList"
        style="@style/Width_height_all_both_matchParent"
        >
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar_StudentList"
            style="@style/ToolBar_all"
            />
        <RelativeLayout
            style="@style/RelativeLayout_searchView_all"
            >
            <android.support.v7.widget.SearchView
                android:id="@+id/searchView_StudentList"
                style="@style/SearchView_all"
                />
        </RelativeLayout>
        <android.support.v7.widget.RecyclerView
            android:id="@+id/recyclerView_StudentList"
            style="@style/RecyclerView_FrameLayout_all"
            />
    </FrameLayout>
    <android.support.design.widget.NavigationView
        android:id="@+id/navigationView_StudentList"
        style="@style/NavigationView_StudentList"
        />
</android.support.v4.widget.DrawerLayout>

还有一个关闭活动的图标:

代码语言:javascript
复制
public boolean onCreateOptionsMenu(Menu menu)
{
    getMenuInflater().inflate(R.menu.toolbar_backicon, menu);//Back item in Toolbar

    return super.onCreateOptionsMenu(menu);
}

public boolean onOptionsItemSelected(MenuItem item)
{
    finish();//close activity

    return super.onOptionsItemSelected(item);
}
EN

回答 1

Stack Overflow用户

发布于 2019-08-24 11:53:59

在……里面

代码语言:javascript
复制
public boolean onOptionsItemSelected(MenuItem item)
{
    finish();//close activity

return super.onOptionsItemSelected(item);
}

必须指定“关闭”按钮的id,以便仅在单击“关闭”按钮上的图标时活动才会关闭。在这种情况下,您的活动每次都会关闭,因此必须将代码替换为如下所示

代码语言:javascript
复制
  public boolean onOptionsItemSelected(MenuItem item)
{
    if(item.getId()==R.id.closeButton)

 {        finish();//close activity
  return true;
   } 

return super.onOptionsItemSelected(item);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57635987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档