In my application the user can expand an item by tapping the icon to the right. This will also collapse any previously selected item. In general this works as expected;
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<expandable:ExpandableView
Spacing="0"
ExpandAnimationLength="100"
IsTouchToExpandEnabled="false"
IsExpanded="{Binding IsExpanded}">
<expandable:ExpandableView.PrimaryView>
<Grid
RowSpacing="0"
Padding="0"
Margin="5,0"
BackgroundColor="{Binding JobStatus, Converter={StaticResource StringToColourConverter}}">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="40"/>
</Grid.ColumnDefinitions>
<Label
Grid.Row="0"
Grid.RowSpan="3"
Grid.Column="0"
Text="{Binding SequenceNumber}"
TextColor="{StaticResource SunburstOrange}"
FontSize="36"
HorizontalTextAlignment="Center"
WidthRequest="60"
HorizontalOptions="CenterAndExpand"
VerticalOptions="CenterAndExpand"/>
<Label
Grid.Row="0"
Grid.Column="1"
Text="{Binding JobLine1}"
TextColor="{StaticResource DarkSlateGrey}"
FontSize="17"
Margin="0,2,0,0"/>
<Label
Grid.Row="1"
Grid.Column="1"
Text="{Binding JobLine2}"
TextColor="{StaticResource DimGrey}"
FontSize="12"
Margin="0,0,0,0"/>
<Label
Grid.Row="2"
Grid.Column="1"
Text="{Binding JobLine3}"
TextColor="{StaticResource SunburstOrange}"
FontSize="12"
Margin="0,0,0,2"/>
<Button
Grid.Row="0"
Grid.RowSpan="3"
Grid.Column="2"
Text="{Binding JobIcon}"
FontSize="30"
TextColor="{StaticResource DarkSlateGrey}"
BackgroundColor="Transparent"
VerticalOptions="StartAndExpand"
HorizontalOptions="Center"
Padding="0"
WidthRequest="40"
HeightRequest="40"
Clicked="OnJobClicked"
CommandParameter="{Binding .}">
<Button.FontFamily>
<OnPlatform x:TypeArguments="x:String"
Android="Font Awesome 5 Free-Solid-900.otf#Font Awesome 5 Free Solid"
iOS="Font Awesome 5 Free"
WinPhone="Assets/Font Awesome 5 Free-Solid-900.otf#Font Awesome 5 Free" />
</Button.FontFamily>
</Button>
</Grid>
</expandable:ExpandableView.PrimaryView>
<expandable:ExpandableView.SecondaryViewTemplate>
<DataTemplate>
<Grid
Margin="0"
Padding="10,0,5,0"
BackgroundColor="{Binding JobStatus, Converter={StaticResource StringToColourConverter}}">
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<Label
Grid.Row="0"
Grid.Column="0"
Text="Contact:"
TextColor="{StaticResource DarkSlateGrey}"
FontSize="12"
FontAttributes="Bold"
HorizontalTextAlignment="End"
VerticalTextAlignment="Start"/>
<Label
Grid.Row="0"
Grid.Column="1"
Text="{Binding ContactDetail}"
TextColor="{StaticResource DimGrey}"
FontSize="12"
VerticalTextAlignment="Start"
IsVisible="{Binding HasContactData}"/>
<!-- Call Contact -->
<Button
Grid.Row="0"
Grid.Column="2"
Text=""
FontSize="20"
TextColor="{StaticResource DarkSlateGrey}"
BackgroundColor="Transparent"
VerticalOptions="CenterAndExpand"
HorizontalOptions="Center"
Padding="0"
WidthRequest="30"
HeightRequest="30"
IsVisible="{Binding HasContactNumber}"
Clicked="OnCallClient"
CommandParameter="{Binding ContactPhone}">
<Button.FontFamily>
<OnPlatform x:TypeArguments="x:String"
Android="Font Awesome 5 Free-Solid-900.otf#Font Awesome 5 Free Solid"
iOS="Font Awesome 5 Free"
WinPhone="Assets/Font Awesome 5 Free-Solid-900.otf#Font Awesome 5 Free" />
</Button.FontFamily>
</Button>
<Label
Grid.Row="1"
Grid.Column="0"
Text="Address:"
TextColor="{StaticResource DarkSlateGrey}"
FontSize="12"
FontAttributes="Bold"
HorizontalTextAlignment="End"
VerticalTextAlignment="Start"/>
<Label
Grid.Row="1"
Grid.Column="1"
Text="{Binding JobAddress}"
TextColor="{StaticResource DimGrey}"
FontSize="12"
VerticalTextAlignment="Start"/>
<!-- Map -->
<Button
Grid.Row="1"
Grid.Column="2"
Text=""
FontSize="20"
TextColor="{StaticResource DarkSlateGrey}"
BackgroundColor="Transparent"
VerticalOptions="CenterAndExpand"
HorizontalOptions="Center"
Padding="0"
WidthRequest="30"
HeightRequest="30"
Clicked="OnMapClicked"
CommandParameter="{Binding .}">
<Button.FontFamily>
<OnPlatform x:TypeArguments="x:String"
Android="Font Awesome 5 Free-Solid-900.otf#Font Awesome 5 Free Solid"
iOS="Font Awesome 5 Free"
WinPhone="Assets/Font Awesome 5 Free-Solid-900.otf#Font Awesome 5 Free" />
</Button.FontFamily>
</Button>
<Label
Grid.Row="2"
Grid.Column="0"
Text="Hours:"
TextColor="{StaticResource DarkSlateGrey}"
FontSize="12"
FontAttributes="Bold"
HorizontalTextAlignment="End"
VerticalTextAlignment="Start"/>
<Label
Grid.Row="2"
Grid.Column="1"
Text="{Binding OpeningHours}"
TextColor="{StaticResource DimGrey}"
FontSize="12"
VerticalTextAlignment="Start"/>
<Label
Grid.Row="3"
Grid.Column="0"
Text="Instructions:"
TextColor="{StaticResource DarkSlateGrey}"
FontSize="12"
FontAttributes="Bold"
HorizontalTextAlignment="End"
VerticalTextAlignment="Start"/>
<Label
Grid.Row="3"
Grid.Column="1"
Grid.ColumnSpan="2"
Text="{Binding Instructions}"
TextColor="{StaticResource StatusDanger}"
FontSize="12"
HorizontalOptions="FillAndExpand"/>
<StackLayout
Grid.Row="4"
Grid.Column="0"
Grid.ColumnSpan="3"
Orientation="Horizontal"
HorizontalOptions="Center"
Spacing="20"
Margin="0,0,0,5">
<Button
Text="Can't Complete"
TextColor="White"
BackgroundColor="{StaticResource ButtonDanger}"
BorderColor="{StaticResource SlateGrey}"
BorderWidth="1"
VerticalOptions="Start"
Padding="0,0,0,0"
HeightRequest="30"
WidthRequest="140"
CornerRadius="5"
Clicked="OnCantComplete"
CommandParameter="{Binding .}"/>
<Button
Text="Start"
BackgroundColor="{StaticResource ButtonOk}"
BorderColor="{StaticResource SlateGrey}"
BorderWidth="1"
VerticalOptions="Center"
Padding="0,0,0,0"
HeightRequest="30"
WidthRequest="140"
CornerRadius="5"
Clicked="OnStartJob"
CommandParameter="{Binding .}"/>
</StackLayout>
</Grid>
</DataTemplate>
</expandable:ExpandableView.SecondaryViewTemplate>
</expandable:ExpandableView>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>