更改抽屉图标背靠背箭头

Posted

技术标签:

【中文标题】更改抽屉图标背靠背箭头【英文标题】:Change drawer icon back to back arrow 【发布时间】:2013-07-18 23:19:46 【问题描述】:

我正在使用新的DrawerLayout 进行侧边导航。我正在使用这样的抽屉图标(“汉堡包”):

@Override
protected void onStart() 
    super.onStart();

    mDrawerLayout = (DrawerLayout) findViewById(R.id.activity_main_drawerlayout);
    mDrawerToggle = new ActionBarDrawerToggle(
            this, 
            mDrawerLayout, 
            R.drawable.ic_navigation_drawer, 
            R.string.app_name, 
            R.string.app_name);
    mDrawerLayout.setDrawerListener(mDrawerToggle);

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

但是,当我将Fragment 添加到后台堆栈时,我想再次显示后退箭头,以便用户可以导航回“主页”,然后才打开应用程序抽屉。

如何将抽屉图标重置为后退图标? 我想要的箭头:

【问题讨论】:

在这里查看我的答案***.com/a/29292130/746347 【参考方案1】:

要禁用和隐藏 DrawerToggle “Hamburger”,只需调用

mDrawerToggle.setDrawerIndicatorEnabled(false);

【讨论】:

谢谢,你能告诉我如何在 mDrawerToggle.setDrawerIndicatorEnabled(false) 之后实现点击后退动作吗?我正在尝试从内容详细信息片段返回列表视图片段。 P.S:我可以使用后退按钮转到上一个片段。 @adnanyousafch ***.com/questions/17258020/… 非常有帮助,非常感谢! 我只想更改那个汉堡包图标和它的后背图标。它们很小,离左边很近。【参考方案2】:

我为托管活动创建了一个界面来更新汉堡菜单的视图状态。对于***片段,我将切换设置为true,对于要显示向上 false。

public class SomeFragment extends Fragment 

    public interface OnFragmentInteractionListener 
        public void showDrawerToggle(boolean showDrawerToggle);
    

    private OnFragmentInteractionListener mListener;

    @Override
    public void onAttach(Activity activity) 
        super.onAttach(activity);
        try 
            this.mListener = (OnFragmentInteractionListener) activity;
         catch (ClassCastException e) 
            throw new ClassCastException(activity.toString() + " must implement OnFragmentInteractionListener");
        
    

    @Override
    public void onResume() 
        super.onResume();
        mListener.showDrawerToggle(false);
    

然后在我的活动中...

public class MainActivity extends Activity implements SomeFragment.OnFragmentInteractionListener 

    private ActionBarDrawerToggle mDrawerToggle;

    public void showDrawerToggle(boolean showDrawerIndicator) 
        mDrawerToggle.setDrawerIndicatorEnabled(showDrawerIndicator);
    


【讨论】:

我怎样才能使这个'通用',所以它适用于像SomeFragment这样的许多类?还是MainActivity 必须单独实现每一个? @IanB,我认为你应该创建一些类,例如 BaseFragment,实现该代码,然后扩展你想使用 Base Fragment 接口的每个片段

以上是关于更改抽屉图标背靠背箭头的主要内容,如果未能解决你的问题,请参考以下文章

无法更改 NavigationDrawer 的抽屉图标

导航抽屉切换图标

像导航抽屉一样切换片段(带后退箭头)

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

如何更改Select2箭头图标?

图标上出现这样的两个蓝色小箭头该怎么去掉