Я реализовал макет ящика в своем проекте xamarin, и возникла проблема.Гамбургер показывает хорошо, скользит правильно, чтобы стать стрелкой, но когда я пытаюсь восстановить гамбургер, он больше не будет отображаться и вместо этого останется со стрелкой.Я пробовал много решений в предыдущих постах, но ни одно из них не решило мою проблему.
Вот различные состояния экранов:
Состояние 1
Состояние1 изображение
состояние 2
состояние 2 изображение
состояние 3
состояние 3 изображение
Вот мой код:
public class HomeEventActivity : AppCompatActivity
{
private SupportToolBar mToolBar;
private MyActionBarDrawerToggle mDrawerToggle;
private DrawerLayout drawerLayout;
private ListView mLeftDrawer;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.HomeEvent);
mToolBar = FindViewById<SupportToolBar>(Resource.Id.toolBarMenu);
drawerLayout = FindViewById<DrawerLayout>(Resource.Id.drawerLayout1);
mLeftDrawer = FindViewById<ListView>(Resource.Id.listviewleft);
SetSupportActionBar(mToolBar);
mDrawerToggle = new MyActionBarDrawerToggle(this, drawerLayout, Resource.String.openDrawer,
Resource.String.closeDrawer);
drawerLayout.AddDrawerListener(mDrawerToggle);
SupportActionBar.SetDisplayHomeAsUpEnabled(true);
SupportActionBar.SetHomeButtonEnabled(true);
mDrawerToggle.SyncState();
// Create your application here
if (savedInstanceState != null)
{
if (savedInstanceState.GetString("DrawerState") == "Opened")
{
SupportActionBar.SetTitle(Resource.String.openDrawer);
mDrawerToggle.SyncState();
}
else
{
SupportActionBar.SetTitle(Resource.String.closeDrawer);
mDrawerToggle.SyncState();
}
}
else
{
//This is the first time the activity is run
SupportActionBar.SetTitle(Resource.String.closeDrawer);
mDrawerToggle.SyncState();
}
}
public override bool OnOptionsItemSelected(IMenuItem item)
{
mDrawerToggle.OnOptionsItemSelected(item);
mDrawerToggle.SyncState();
return base.OnOptionsItemSelected(item);
}
public override void OnSaveInstanceState(Bundle savedInstanceState, PersistableBundle persistentState)
{
if (drawerLayout.IsDrawerOpen((int)GravityFlags.Left))
{
savedInstanceState.PutString("DrawerState", "Opened");
mDrawerToggle.SyncState();
}
else
{
savedInstanceState.PutString("DrawerState", "Closed");
mDrawerToggle.SyncState();
}
base.OnRestoreInstanceState(savedInstanceState, persistentState);
}
protected override void OnPostCreate(Bundle savedInstanceState)
{
base.OnPostCreate(savedInstanceState);
mDrawerToggle.SyncState();
}
public override void OnConfigurationChanged(Configuration newConfig)
{
base.OnConfigurationChanged(newConfig);
mDrawerToggle.OnConfigurationChanged(newConfig);
}
}
Есть идеи?