MultiLine DisplayText is Doubling the Height on specific android devices and emulators:
DOES HAPPEN:
Galaxy S22 Ultra
Emulator Pixel 2 R 11.0
Emulator: Pixel3A android 11 api 30
DOES NOT HAPPEN:
Galaxy S22
Emulator Android 8 xh_dpi_4_65in
LongPress is called on element that is already disposed.
ObjectDisposedException is thrown:
at Telerik.XamarinForms.Common.NativeGestureRecognizer.ToDip
at Telerik.XamarinForms.Common.GestureListener.OnLongPress
Stack-Trace
Xamarin Exception Stack: System.ObjectDisposedException: Cannot access a disposed object. Object name: 'Xamarin.Forms.Platform.Android.Platform+DefaultRenderer'. at Java.Interop.JniPeerMembers.AssertSelf (Java.Interop.IJavaPeerable self) [0x00029] in <2e109281f9514c53b44688fd4549adb2>:0 at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeNonvirtualObjectMethod (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x00000] in <2e109281f9514c53b44688fd4549adb2>:0 at Android.Views.View.get_Context () [0x0000a] in <9d68875f5dbd432db5314e1c0d96cb02>:0 at Telerik.XamarinForms.Common.NativeGestureRecognizer.ToDip (System.Single px) [0x00000] in <9f139977bc32402dabe4bb05ac247bb2>:0 at Telerik.XamarinForms.Common.GestureListener.OnLongPress (Android.Views.MotionEvent e) [0x0000c] in <9f139977bc32402dabe4bb05ac247bb2>:0 at Android.Views.GestureDetector+IOnGestureListenerInvoker.n_OnLongPress_Landroid_view_MotionEvent_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_e) [0x0000f] in <9d68875f5dbd432db5314e1c0d96cb02>:0 at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.102(intptr,intptr,intptr)
The issue occurs on the following device:
Android: 12Hi Team,
Please consider adding Open/Closed event for the comboBox's popup. The validation for this is I need to perform validation if a user closes the popup without making a selection.
SelectionChanged doesn't work here, because user never selected anything. Focus events are very finnicky because of the platform differences and input modalities.
The only sane options is to add an official PopupClosed event (and you don't even need custom EventArgs).
Thank you!
Bobby
Workaround
For now, I am using reflection+ nonPublic|Instance BindingFields to get a reference to the private RadPopup field of the RadComboBox. With that reference, I am subscribing to PropertyChanged and watching for value changes of the IsOpen property.
It goes without saying, this is a very resource intensive and unofficial approach.
public partial class MainPage : ContentPage
{
private RadPopup internalPopup;
public MainPage()
{
InitializeComponent();
}
protected override void OnAppearing()
{
base.OnAppearing();
var popup = typeof(RadComboBox).GetField("popup", BindingFlags.NonPublic | BindingFlags.Instance)?.GetValue(ComboBox1);
if (popup is RadPopup p1)
{
internalPopup = p1;
internalPopup.PropertyChanged += InternalPopup_PropertyChanged;
}
}
private void InternalPopup_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName != nameof(RadPopup.IsOpen))
return;
if (internalPopup.IsOpen)
{
// Popup was opened
}
else
{
// Popup was closed
}
}
protected override void OnDisappearing()
{
if (internalPopup != null)
internalPopup.PropertyChanged -= InternalPopup_PropertyChanged;
base.OnDisappearing();
}
}
DataBindingComplete event of the DataGrid should be fired when the associated data (ItemsSource) has been successfully bound to the control or any data operation like Group, Sort or Filter is applied. Currently the event handler is not called as expected.
In the Map Control - Are background layers: Google / Bing / Open Street Map / WMS a possibility?
/Brian
<telerik:RadBusyIndicator
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
IsBusy="{Binding IsBusy}"
IsVisible="{Binding IsBusy}"
AnimationContentHeightRequest="60"
AnimationContentWidthRequest="60"
AnimationType="Animation3"
AnimationContentColor="{DynamicResource BrandPrimaryColor}">
<telerik:RadBusyIndicator.BusyContent>
<Label Text="{Binding BusyContent}" HorizontalOptions="Center"/>
</telerik:RadBusyIndicator.BusyContent>
</telerik:RadBusyIndicator>
RdBusyIndicator BusyContent data binding does not work for the above Label inside the "telerik:RadBusyIndicator.BusyContent". If a string constant is assigned to the Text(for example "Loading..."), then it works perfectly.
The view model 100% has the property "BusyContent" with a value. By the way, the IsBusy and IsVisible data binding work fine.
Most PDF Viewers come with the ability to print, email, text etc the PDF that is loaded. For example, in the default iOS PDF viewer there is a "share" icon. When the "share" icon is tapped, multiple options and apps come up that allow users to "print", "message/text", "email" the PDF. It would be a great feature to have in the Xamarin UI PDF Viewer. It could just be part of the PDFViewer Toolbar options.
private void Button_Clicked(object sender, System.EventArgs e)
{
this.radEntry.Text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ";
}
when using DayViewSettings and applying AppointmentTemplate, the template is not applied, the default one is applied.
Workaround: apply AppointmentTemeplate to MultiDayViewSettings for UWP.
<telerikImageEditor:RadImageEditorToolbar Grid.Row="1"
ImageEditor="{x:Reference imageEditor}"
AutoGenerateItems="False"
IsMultiLine="True">
<telerikImageEditor:EffectsToolbarItem AutoGenerateItems="False">
<telerikImageEditor:ContrastToolbarItem AutoGenerateItems="False">
<telerikImageEditor:CancelToolbarItem HorizontalOptions="Start" />
<telerikImageEditor:TemplateToolbarItem>
<telerikImageEditor:TemplateToolbarItem.Template>
<DataTemplate>
<Slider Maximum="2" Minimum="0" Value="{Binding Value}" />
</DataTemplate>
</telerikImageEditor:TemplateToolbarItem.Template>
</telerikImageEditor:TemplateToolbarItem>
<telerikImageEditor:ApplyToolbarItem HorizontalOptions="End" />
</telerikImageEditor:ContrastToolbarItem>
</telerikImageEditor:EffectsToolbarItem>
</telerikImageEditor:RadImageEditorToolbar>
X-Axis labels are overlapped when new data points are constantly added.
on Android, the axis labels are replaced.
There is an inconsistency in the behavior on Android and iOS.
Workaround:
apply ChartPanAndZoomBehavior and set
PanMode to "Horizontal"
ZoomMode to "Horizontal"
And chart Zoom to "2,1"
<telerikChart:RadCartesianChart PaletteName="Light"
Zoom="2, 1">
<telerikChart:RadCartesianChart.BindingContext>
<local:ViewModel/>
</telerikChart:RadCartesianChart.BindingContext>
<telerikChart:RadCartesianChart.HorizontalAxis>
<telerikChart:DateTimeContinuousAxis LabelFitMode="Rotate"
MajorStepUnit="Day"
PlotMode="OnTicks"
LabelFormat="dd MMM"
MajorStep="20"
ShowLabels="True"/>
</telerikChart:RadCartesianChart.HorizontalAxis>
<telerikChart:RadCartesianChart.VerticalAxis>
<telerikChart:NumericalAxis />
</telerikChart:RadCartesianChart.VerticalAxis>
<telerikChart:RadCartesianChart.Series>
<telerikChart:LineSeries ValueBinding="Value"
CategoryBinding="Date"
DisplayName="Sales"
ItemsSource="{Binding Data}"/>
</telerikChart:RadCartesianChart.Series>
<telerikChart:RadCartesianChart.ChartBehaviors>
<telerikChart:ChartPanAndZoomBehavior ZoomMode="Horizontal"
PanMode="Horizontal"
HandleDoubleTap="True"/>
</telerikChart:RadCartesianChart.ChartBehaviors>
</telerikChart:RadCartesianChart>
I would like to make the dropdown appear to the right of the ComboBox instead of showing up below the ComboBox.
Provide an API for changing the DropDown position. For example, the DropDown could be visualized above or under the input control - similar to AutoCompleteView control.