On iOS, a ListViewTemplateCell inside a RadListView does not adjust its height to fit its contents. On Android it does.
I found a forum post about this from over three years ago, and the reply from Telerik was that it would be fixed the following week. Am I missing something, or was it not fixed?
This is the post I'm referring to: https://www.telerik.com/forums/dynamic-cell-heights-on-ios
Hi,
I am using a listview to display a lot of data at the moment, users can multiselect items, I need to add a search bar on the top to filter the data. It must filter the data in the listview in realtime as the user is entering data on the search bar and allow to select multiple items.
Whats the best to do this, using the filter in the listview or using AutoCompleteView ?
Thanks for your help.
Hi,
I have spent days trying to get Xamarin Forms RadTreeView LoadOnDemand to work properly for a UWP app that is referencing the Xamarin Forms app. I can debug break the code at the load command and see that the data is loading properly into the context and the treeview icon indicates that it is expanded, but the new sub items will not show up. I have tried with datatemplate, without template, with various types of collections, manually calling OnPropertyChanged, using the ItemTapped event instead instead of LoadOnDemand, all with the same results.
I believe it is a bug because when I load all the data initially, it will show up properly in the tree. However, I have found no way to initialize the tree in a collapsed state (even if I call CollapseAll which doesn't do anything). It's as if the treeview is never getting refreshed if the ItemsSource data changes after the page loads.
Do you have a simple working UWP example with LoadOnDemand? The GitHub QSF projects have so many compilation errors that I can't get them to work.
I'm using Telerik.UI.for.Xamarin (2018.3.1122.3)
Thanks,
Ian
private
void
LoadOnDemandExecute(
object
p)
{
var context = (TreeViewLoadOnDemandCommandContext)p;
var platform = context.Item
as
TreePlatform;
if
(platform !=
null
)
{
platform.Groups =
new
List<TreeGroup>();
platform.Groups.Add(
new
TreeGroup() { Name =
"test"
});
context.Finish();
}
}
Hi All
I have updated Telerik Xamarin Controls to latest version and now can not build ios app with MS AppCenter.
I'm not even using RadBusyIndicator
Here is full error description:
MTOUCH : error MT2101: Can't resolve the reference 'System.Object Telerik.XamarinForms.Common.RadPlatform::GetRenderer(Xamarin.Forms.VisualElement)', referenced from the method 'System.Void Telerik.XamarinForms.Primitives.RadBusyIndicator::OnPropertyChanged(System.String)' in 'Telerik.XamarinForms.Common, Version=2018.1.221.240, Culture=neutral, PublicKeyToken=null'. [/Users/vsts/agent/2.129.1/work/1/s/iOS/Link.iOS.csproj]
I am using Xamarin.Controls.SignaturePad.Forms, and using the signature pad inside of a grid to have action buttons along the bottom. When doing so, it is necessary to use InputTransparent="True" and CascadeInputTransparent="False" in order for the SignaturePadView to allow the user to draw their signature as well as the buttons to still remain clickable.
I would like to wrap this inside a RadBorder, but it appears that there are inaccessible child views in the RadBorder before the "Content" inside the border, so CascaseInputTransparent = "False" seems to be causing possibly private inner views of the RadBorder (before my grid) to have InputTransparent default to "False" even though I want the border (and all child elements before my content) to be "True". Leaving CascadeInputTransparent as "True" (the default) causes the buttons to not be clickable. Removing InputTransparent="True" causes the SignaturePad to not track the user's finger and draw the signature.
THE QUESTION:
Is there currently a way to access any child views of the RadBorder before the nested content? If not, maybe this is more of a bug report instead of a question, or a helpful workaround for someone else that may encounter the error. Obviously, it would be nice if RadBorder handled these two settings as if it were one view and the cascade passed through as expected. I'm just guessing that there is an underlying system of nested views to make the RadBorder so awesome, and that they are not inheriting the settings for these items from the parent view.
<!-- this code works -->
<Grid Grid.Row="0" Grid.Column="0" HorizontalOptions="Center" VerticalOptions="Center"
HeightRequest="400" WidthRequest="600" Padding="50"
Opacity="1" InputTransparent="True" CascadeInputTransparent="False">
<Grid.RowDefinitions>
<RowDefinition Height="3*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<signature:SignaturePadView x:Name="PadView"
Grid.Row="0"
Grid.ColumnSpan="3"
HeightRequest="300"
WidthRequest="500"
BackgroundColor="White"
CaptionText="Signature"
CaptionTextColor="Black"
ClearText="Clear"
ClearTextColor="Red"
PromptText="Please Sign"
PromptTextColor="Red"
SignatureLineColor="Aqua"
StrokeColor="Black"
StrokeWidth="2"/>
<Button x:Name="CancelButton"
Text="Cancel"
Grid.Row="1"
Grid.Column="0"
TextColor="White"
BackgroundColor="Red"
Clicked="OnClickedCancel"
/>
<Button x:Name="ClearButton"
Text="Clear"
Grid.Row="1"
Grid.Column="1"
TextColor="White"
BackgroundColor="Silver"
Clicked="OnClickedClear"
/>
<Button x:Name="ContinueButton"
Text="CONTINUE"
Grid.Row="1"
Grid.Column="2"
TextColor="White"
BackgroundColor="Silver"
Clicked="OnClickedContinue"
/>
</Grid>
<!-- wrapping the above inside of this RadBorder does not -->
<telerikPrimitives:RadBorder InputTransparent="True" CascadeInputTransparent="False" BackgroundColor="White"
HorizontalOptions="CenterAndExpand" VerticalOptions="Center"
HeightRequest="400" WidthRequest="600"
Padding="50" CornerRadius="10">
<!-- the above grid code -->
</telerikPrimitives:RadBorder>
My workaround was to put both of these above into another grid, both at Row=0, Col=0 so that they would overlay, but then resizing the content becomes more tedious because I am having to set the width and height and padding between two separate overlays instead of just having it nested inside your RadBorder.
<Grid>
<telerikPrimitives:RadBorder Grid.Row="0" Grid.Col="0" WidthRequest="500" HeightRequest="400" BackgroundColor=
White" HorizontalOptions="Center" VerticalOptions="Center"></telerikPrimitives:RadBorder>
<Grid Grid.Row="0" Grid.Col="0" BackgroundColor="White"
WidthRequest="400" HeightRequest="300" BackgroundColor="White" HorizontalOptions="Center" VerticalOptions="Center">
<!-- Grid stuff w/ sig pad and buttons -->
</Grid><!-- inner grid -->
</Grid><!-- outer grid -->
Hi everybody. I'm using this controller's commands option. I'm following the guides and it works, however, whenever I try to navigate to another page, I get this error: "PushAsync is not supported globally on iOS, please use a NavigationPage.".
I tried moving my code from the ViewModel to the Content page where I invoque the view model. The tree lodes the data just fine, but now it won't recognize the tap action.
async void OnItemTap(object p)
{
var context = (TreeViewItemCommandContext)p;
var item = context.Item as ItemsArbol;
await Application.Current.MainPage.DisplayAlert("", "You clicked on: " + (context.Item as ItemsArbol).Nombre, "OK");
if (!Equals(item.Tipo, "0"))
{
idOrgMod = item.Id;
idOrgModPadre = item.Padre;
Application.Current.Properties["idOrgMod"] = idOrgMod;
Application.Current.Properties["idOrgModPadre"] = idOrgModPadre;
await Application.Current.SavePropertiesAsync();
await Navigation.PushAsync(new OrganizacionesDetalle());
}
}
How can I make the content view recognize the ItemTap action? In case this isn't possible, how can I make the viewmodel display the new page when I tap the tree's item?
Thanks in advance for your help.
HI, I follow this
https://docs.telerik.com/devtools/xamarin/knowledge-base/slideview-access-parent-bindingcontext
for the BindingContext, but now I need to set the focus to a RadEntry inside a content view. The ViewModel call the function with the MessagingCenter, but I do not know how to access the RadEntry in the code behind.
View:
<
telerikPrimitives:RadSlideView
x:Name
=
"SlideView"
SelectedIndex
=
"{Binding SlideViewIndex}"
>
<
telerikPrimitives:RadSlideView.Commands
>
<
commands:CustomSlideViewCommand
Id
=
"SlidingToIndex"
Command
=
"{Binding BindingContext.SlidindToIndexCommand}"
/>
<
commands:CustomSlideViewCommand
Id
=
"SlidedToIndex"
Command
=
"{Binding BindingContext.SlidedToIndexCommand}"
/>
</
telerikPrimitives:RadSlideView.Commands
>
<
telerikPrimitives:RadSlideView.ItemsSource
>
<
x:Array
Type
=
"{x:Type ContentView}"
>
<
ContentView
x:Name
=
"Etape1CV"
>
<
StackLayout
Margin
=
"10"
x:Name
=
"Etape1SL"
>
<
Label
>Scanner ou entrer un code de localisation</
Label
>
<
Entry
x:Name
=
"TestEntry"
>ALLO</
Entry
>
<
telerikInput:RadEntry
x:Name
=
"CodeLoca"
WatermarkText
=
"Code"
IsTabStop
=
"True"
/>
</
StackLayout
>
</
ContentView
>
<
ContentView
>
<
Label
HorizontalOptions
=
"Center"
VerticalOptions
=
"CenterAndExpand"
Text
=
"Other View"
TextColor
=
"Blue"
/>
</
ContentView
>
<
ContentView
>
<
Label
HorizontalOptions
=
"Center"
VerticalOptions
=
"CenterAndExpand"
Text
=
"Another View"
TextColor
=
"Red"
/>
</
ContentView
>
</
x:Array
>
</
telerikPrimitives:RadSlideView.ItemsSource
>
</
telerikPrimitives:RadSlideView
>
CodeBehind
public
DecompteLocalisationView ()
{
InitializeComponent ();
BindingContextHelper.CurrentPageBindingContext =
this
.BindingContext;
MessagingCenter.Subscribe<
string
>(
this
,
"SetFocusToCodeLoca"
, (sender) => {
foreach
(ContentView View
in
SlideView.ItemsSource)
{
//CHECK THE VIEW NAME TO FIND ETAPE1CV
//THEN SET THE FOCUS
//RadEntry Tb = CodeLoca as RadEntry;
//Tb.Focus();
//if (Tb.Text.Length > 0)
//{
// Tb.CursorPosition = 0;
// Tb.SelectionLength = Tb.Text.Length;
//}
}
});
}
Thanks