Как создать NavigationView программно
Я пытаюсь создать Navigation Drawer программно, все работает на панели навигации, которая закрывает экран и блокирует другой контент. Я удалил навигационное представление, и содержимое снова отображается правильно.
private View SetupNavigationView() {
fullLayout = new DrawerLayout(this);
fullLayout.LayoutParameters = new DrawerLayout.LayoutParams(DrawerLayout.LayoutParams.MatchParent, DrawerLayout.LayoutParams.MatchParent);
fullLayout.SetFitsSystemWindows(true);
fullLayout.SetBackgroundColor(Color.Black);
LinearLayout relLayout = new LinearLayout(this);
relLayout.LayoutParameters = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.MatchParent);
relLayout.Orientation = Orientation.Vertical;
relLayout.WeightSum = 100;
toolbar = new SupportToolbar(this);
LinearLayout.LayoutParams tParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent,0, 10);
toolbar.LayoutParameters = tParams;
toolbar.SetBackgroundColor(Color.Gray);
toolbar.SetMinimumHeight(50);
activityContainer = new FrameLayout(this);
activityContainer.LayoutParameters = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent,0,90);
relLayout.AddView(toolbar);
relLayout.AddView(activityContainer);
fullLayout.AddView(relLayout);
navigationView = new NavigationView(this);
DrawerLayout.LayoutParams navLayout = new DrawerLayout.LayoutParams(DrawerLayout.LayoutParams.WrapContent, DrawerLayout.LayoutParams.MatchParent);
navigationView.LayoutParameters = navLayout;
navigationView.SetBackgroundColor(Color.Blue);
navigationView.SetFitsSystemWindows(true);
//navLayout.Gravity = GravityFlags.Start;
//Had to comment this out as DrawerLayout.LayoutParams does not implement Layout Gravity.
fullLayout.AddView(navigationView);
return fullLayout;
}
Я изначально пытался использовать LinearLayout.LayourParams
для навигации, но это по-прежнему не имеет значения. Я потратил немало времени, работая над этим, так что это последний кусок, который мне нужен, чтобы начать работать. Спасибо за любую помощь или предложения.