有没有办法为Drawer OnClose设置监听器? (Xamarin)

问题描述 投票:0回答:1

我在网上看到了一些与Java相关的答案。

我不知道如何覆盖ActionBarDrawerToggle.onDrawerOpened(...)

有任何想法吗?

示例:12

c# android xamarin toggle drawer
1个回答
0
投票

首先,实现接口DrawerLayout.IDrawerListener

private DrawerLayout drawer;
private ActionBarDrawerToggle toggle;
private NavigationView navigationView;

protected override void OnCreate(Bundle savedInstanceState)
    {
        base.OnCreate(savedInstanceState);
        SetContentView(Resource.Layout.activity_main);

        Android.Support.V7.Widget.Toolbar toolbar =                 FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
        SetSupportActionBar(toolbar);
        SupportActionBar.SetDisplayHomeAsUpEnabled(true);


        drawer = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
        toggle = new ActionBarDrawerToggle(this, drawer,         Resource.String.navigation_drawer_open, Resource.String.navigation_drawer_close);
        drawer.AddDrawerListener(toggle);
        drawer.AddDrawerListener(this);
        toggle.SyncState();
    }

现在实现活动中的功能:

public void OnDrawerClosed(View drawerView)
        {
            //Code here
            ((DrawerLayout.IDrawerListener)toggle).OnDrawerClosed(drawerView);
        }

        public void OnDrawerOpened(View drawerView)
        {
            //Code here
            ((DrawerLayout.IDrawerListener)toggle).OnDrawerOpened(drawerView);
        }

        public void OnDrawerSlide(View drawerView, float slideOffset)
        {
            //Code here
            ((DrawerLayout.IDrawerListener)toggle).OnDrawerSlide(drawerView, slideOffset);
        }

        public void OnDrawerStateChanged(int newState)
        {
            //Code here
((DrawerLayout.IDrawerListener)toggle).OnDrawerStateChanged(newState);
        }

注意:代码不满,请告知我是否有任何问题。

© www.soinside.com 2019 - 2024. All rights reserved.