ページにはスライド移動に反応するチャートビューが含まれているViewPagerがあります。これにより、画面の端からスライドさせてページを変更することになりました。しかし、これはNavigationDrawerを開くジェスチャーでもあるという問題を私に残します。私は今も閉じないようにロックモードを設定し、Androidのサポートデザインライブラリ23.1.1.1にアップデートするまでは、意図したとおりに働いていたNavigationDrawerがジェスチャーで開かれるのを防ぐが、サポートデザインライブラリのハンバーガーアイコンから許可する方法23.1.1.1
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(GetLayoutId());
Toolbar = FindViewById<Toolbar>(Resource.Id.toolbar);
if (Toolbar != null)
{
// set this flag so the colors colorPrimaryDark and android:statusBarColor have an effect
// setting android:statusBarColor to transparent causes the drawer to be dran underneath a translucent status bar
Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds);
// make the toolbar the replacement of the action bar
SetSupportActionBar(Toolbar);
}
// add the hamburger icon
m_DrawerLayout = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
var actionBarDrawerToggle = new ActionBarDrawerToggle(this, m_DrawerLayout, Toolbar, Resource.String.empty, Resource.String.empty);
m_DrawerLayout.AddDrawerListener(actionBarDrawerToggle);
// make sure the drawer can't be opened by swiping, to do this we set the lock mode to closed
// but if we just do this, it can't be closed by swiping either, so set the lock mode to unlocked when the drawer is opened, and locked again when it's closed
m_DrawerLayout.DrawerOpened += (object sender, DrawerLayout.DrawerOpenedEventArgs e) =>
{
m_DrawerLayout.SetDrawerLockMode(DrawerLayout.LockModeUnlocked);
};
m_DrawerLayout.DrawerClosed += (object sender, DrawerLayout.DrawerClosedEventArgs e) =>
{
m_DrawerLayout.SetDrawerLockMode(DrawerLayout.LockModeLockedClosed);
};
m_DrawerLayout.SetDrawerLockMode(DrawerLayout.LockModeLockedClosed);
//calling sync state is necessay or else the hamburger icon wont show up
actionBarDrawerToggle.SyncState();
}
:
は今まで、私はこれを達成するために、次のコードを使用しましたハンバーガーアイコンをタップしてメニューを開くことができなくなります。
非標準的な振る舞い:) – jaibatrik
'DrawerLayout'から拡張したカスタム' View'を作成する必要があるかもしれません。 – jaibatrik
それが実際にそれを引き起こしている更新プログラムの場合は、その部分の騒ぎのように思えます。あなたはおそらく、以前のライブラリバージョンに戻すか、それを修正するか、それが今や意図された振る舞いであると述べ、楽しいものではないと言います。これは、古い振る舞いを得るために不必要に複雑な回避策をとるためです。 –