相关疑难解决方法(0)

使用片段时,在Android导航抽屉图像和向上插入符之间切换

当使用导航抽屉时,Android开发人员建议在ActionBar中"只有那些在导航抽屉中表示的屏幕应该实际上具有导航抽屉图像",并且"所有其他屏幕都具有传统的向上克拉".

详情请见:http://youtu.be/F5COhlbpIbY

我正在使用一个活动来控制多个级别的片段,并且可以使导航抽屉图像在所有级别上显示和运行.

创建较低级别的片段时,我可以调用ActionBarDrawerToggle setDrawerIndicatorEnabled(false)隐藏导航抽屉图像并显示向上插入符号

LowerLevelFragment lowFrag = new LowerLevelFragment();

//disable the toggle menu and show up carat
theDrawerToggle.setDrawerIndicatorEnabled(false);
getSupportFragmentManager().beginTransaction().replace(R.id.frag_layout, 
lowFrag, "lowerFrag").addToBackStack(null).commit();
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是当我导航回到最高级别的片段时,向上克拉仍然显示而不是原始的导航抽屉图像.有关如何"刷新"顶级片段上的ActionBar以重新显示导航抽屉图像的任何建议?


汤姆的建议对我有用.这是我做的:

主要活动

此活动控制应用程序中的所有片段.

在准备新片段以替换其他片段时,我将DrawerToggle设置为setDrawerIndicatorEnabled(false):

LowerLevelFragment lowFrag = new LowerLevelFragment();

//disable the toggle menu and show up carat
theDrawerToggle.setDrawerIndicatorEnabled(false);
getSupportFragmentManager().beginTransaction().replace(R.id.frag_layout,   
lowFrag).addToBackStack(null).commit();
Run Code Online (Sandbox Code Playgroud)

接下来,在覆盖中onBackPressed,我通过将DrawerToggle设置为这样来恢复上面的内容setDrawerIndicatorEnabled(true):

@Override
public void onBackPressed() {
    super.onBackPressed();
    // turn on the Navigation Drawer image; 
    // this is called in the LowerLevelFragments
    setDrawerIndicatorEnabled(true)
}
Run Code Online (Sandbox Code Playgroud)

在LowerLevelFragments中

在我修改过的片段中onCreate, …

android android-fragments android-actionbar navigation-drawer

177
推荐指数
6
解决办法
7万
查看次数

工具栏 - 只需一个活动即可从抽屉切换到后退按钮

我一直在寻找如何在抽屉打开/关闭图标(从汉堡包到箭头)到简单的向后箭头之间切换的方法.我的应用程序目前只有一个Activity在几个片段之间切换.有一次,我想在一个主要片段(即抽屉中的一个片段)之间转换为分层次在前一个片段下的片段(即"添加新片段").在这个新片段中,我想让工具栏显示后退按钮而不是抽屉按钮.

我一直在环顾四周,尝试不同的解决方案.以下是最值得注意的:

目前,我正在考虑一种创建自定义图标的漫长而艰巨的方法,我隐藏并显示(并隐藏/显示本机抽屉图标).但是,有没有更好的方法在抽屉和后退按钮之间切换?

作为一个侧面相关的问题,我一直在查看Material Design文档,并且一些示例在左上角有一个X. 与实现抽屉vs后退/向上按钮相比,实现起来有多么不同?

谢谢〜

编辑:

我可以弄清楚如何替换图标,但我如何获得点击事件?

到目前为止,这是我最好的领导:

我现在尝试过的:

  • 必要时禁用DrawerToggle(即mDrawerToggle.setDrawerIndicatorEnabled(useDrawer);)
  • 在我的NavigationDrawerFragment,我的Activity中添加了onOptionsItemSelected中的日志,以及我正在测试哪个运行的DialogFragment if item.getItemId() == android.R.id.home为true.这些日志语句都没有

为了更好的上下文,我现在有一个全屏片段,在菜单中添加一个"保存"按钮,并将抽屉图标更改为"X".片段可以获取保存菜单事件,但是在点击X时甚至不能获得活动和抽屉.

EDIT2:

根据要求,这里有一些代码.请注意,这都是来自这个我正在积极研究的Github回购(注意我在这里或那里有一些无用的功能来进行快速测试).

ActivityMain:

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

    // Add the toolbar
    mToolbar = (Toolbar) findViewById(R.id.toolbar);
    if (mToolbar != null) {
        setSupportActionBar(mToolbar);
    }

    // Initialize the drawer
    mNavigationDrawerFragment = (NavigationDrawerFragment)
            getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);

    // Set up the drawer
    mNavigationDrawerFragment.setUp(
            R.id.navigation_drawer,
            (DrawerLayout) findViewById(R.id.drawer_layout),
            mToolbar); …
Run Code Online (Sandbox Code Playgroud)

navigation android android-fragments

40
推荐指数
3
解决办法
3万
查看次数

调用ActionBarDrawerToggle.setDrawerIndicatorEnabled后,向上箭头不显示(false)

标题说明了一切.当我打电话给mDrawerToggle.setDrawerIndicatorEnabled(false)我时,我不想再显示" hamburger"图标,而是向后导航箭头.

不幸的是,当我调用此方法时,标题显示时没有向后箭头,也没有"汉堡包"图标.再次设置drawerIndicatorEnabled为true后,它再次显示"汉堡包"图标.

我设置getSupportActionBar().setDisplayHomeAsUpEnabled(true)getSupportActionBar().setDisplayShowHomeEnabled(true)

编辑: 基本上这里建议的解决方案:更改抽屉图标背对背箭头不知何故不给我后退箭头.

有谁知道这个问题的解决方案?非常感谢你!

android navigation-drawer

16
推荐指数
3
解决办法
7531
查看次数