We should consider exposing a property that will leave the side drawer opened even when you click on the main content.
When the IsOpen is set initially to true, on iOS the main content overlay does not display:
We have created dynamic menu for drawer, menu is opening drawer dynamically from Left and Right side Location both sides.
When I tap that navigation menu first time then its opening from left side instead of right side, now when i tap that again then its opening from right side as per requirement.
Currently only Views can be hosted in the MainContent. If users can host Pages the RadSideDrawer could be used as root navigation component. This will allow customers to define the RadSideDrawer once throughout the application.
A few things are missing from Xamarin RadSideDrawer. Here's some we found in Android docs, unavailable on Xamarin Forms (and currently causing us issues that require rethinking the app's workflow, as we really needed a drawer that stays fully locked and cannot be dismissed by the user).
drawer.TapOutsideToClose
drawer.CloseOnBackPress
drawer.IsLocked
Sets the number of pixels from the screen edges that will define the touchable area which allows to open the DrawerContent The property is available in native controls: Android: TouchTargetThreshold iOS: EdgeSwipeTreshold UWP: TouchTargetThreshold
When using OneWay mode binding for RadSideDrawer.IsOpen property, the drawer doesn't open when changing the view model property value. XAML Implementation <primitives:RadSideDrawer IsOpen="{Binding IsOpen}"> ViewModel Property Implementation: private bool isOpen = true; public bool IsOpen { get { return isOpen; } set { SetProperty(ref isOpen, value); } } WORKAROUND: Changing the binding to TwoWay mode will make it work, for example: IsOpen="{Binding IsOpen, Mode=TwoWay}"
The scenario in which the issue is reproducible is when one of the tabs of a RadTabView contains a RadSideDrawer. Switching the view a couple of times causes an exception to be thrown when trying to open the tab that contains the RadSideDrawer. The issue is reproducible in UWP and Android. Available in minor release 2018.1.0315. It will also be available in the R2 2018 release.
On UWP this can be achieved if you set double.NaN as a value of the DrawerLength property and on Android this achieved by setting 0 as a value of the DrawerLength property. On iOS is not supported at all.
When using a AreGesturesEnabled = true, stop the length of the drawer at location of releasing the Gesture. Then allow the user to cover the drawer with the entire screen.
A Java.Lang.IllegalStateException: The specified child already has a parent error is thrown when changing the MainContent or DrawerContent properties runtime Available in R3 2018 release.
RadSideDrawer does not take correct size when the screen is resized/rotated.
Use the following code deployed to UWP to reproduce. Observe the following: - Inability to interact with the Button (unless you move the button outside the invisible gesture detection area) - Gestures are still active even though they're disabled <telerikPrimitives:RadSideDrawer DrawerLength="400" AreGesturesEnabled="false" DrawerLocation="Bottom" DrawerTransitionType="SlideInOnTop" DrawerTransitionDuration="0.2" IsOpen="False"> <telerikPrimitives:RadSideDrawer.DrawerContent> <StackLayout VerticalOptions="FillAndExpand" BackgroundColor="GreenYellow"> <Label Text="DrawerContent" VerticalOptions="FillAndExpand"/> </StackLayout> </telerikPrimitives:RadSideDrawer.DrawerContent> <telerikPrimitives:RadSideDrawer.MainContent> <Grid BackgroundColor="LightBlue"> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Label Text="Demo" VerticalOptions="Fill"/> <Button VerticalOptions="End" HorizontalOptions="Fill" Text="Click Me!" Clicked="Button_OnClicked" BackgroundColor="LightGray" FontSize="12" HeightRequest="20" Grid.Row="1"/> </Grid> </telerikPrimitives:RadSideDrawer.MainContent> </telerikPrimitives:RadSideDrawer>