导航组件的popUpTo不删除按钮

时间:2019-01-02 09:07:45

标签: android android-layout android-fragments android-architecture-navigation

我正在使用导航体系结构组件,并且具有类似于this one的设置,用于在导航到特定片段时弹出堆栈:

<action
  android:id="@+id/navigate_to_main_screen"
  app:destination="@id/fragment_main_screen"
  app:popUpTo="@+id/navigation_main"
  app:popUpToInclusive="true"/>

这几乎可以预期。应用程序栏中的系统后退按钮和向上图标都不会导航到上一个片段。系统后退按钮退出应用程序。

但是,应用程序栏中的向上按钮仍然存在,单击该按钮不会执行任何预期的操作。我究竟做错了什么?为什么还在这里?

在主要活动中我已经拥有

AppBarConfiguration config =
    new AppBarConfiguration.Builder(navController.getGraph()).build();
NavigationUI.setupActionBarWithNavController(this, navController, config);

@Override
public boolean onSupportNavigateUp() {
  return navController.navigateUp() || super.onSupportNavigateUp();
}

按照documentation

我正在使用的库版本:

implementation 'android.arch.navigation:navigation-fragment:1.0.0-alpha09'
implementation 'android.arch.navigation:navigation-ui:1.0.0-alpha09'

1 个答案:

答案 0 :(得分:2)

  

如果要自定义哪些目标被视为顶级目标,则可以将一组目标ID传递给构造函数,如下所示。

要解决您的问题,请替换

cols = [5, 6, 7, 8]
d = dict.fromkeys(df.columns.difference(cols), 'first')
d[3] = 'sum'
print (d)
{0: 'first', 1: 'first', 2: 'first', 3: 'sum', 4: 'first'}

df = df.groupby([5, 6, 7, 8], as_index=False).agg(d).reindex(columns=df.columns)
print (df)
      0          1          2    3     4          5          6        7  \
0  chr5  112312630  112312650   31  chr5  112312630  112321662     DCP2   
1  chr5  137676883  137676900  165  chr5  137676883  137676949   FAM53C   
2  chr5  139944400  139944450  169  chr5  139944064  139946344  SLC35A4   

                   8  
0  ENST00000543319.1  
1  ENST00000434981.2  
2  ENST00000323146.3  

使用

AppBarConfiguration config =
    new AppBarConfiguration.Builder(navController.getGraph()).build();

此处有更多详细信息:AppBarConfiguration