public void Add(View cell, View view)
{
if (cell == null)
throw new ArgumentNullException(nameof(cell));
if (view == null)
throw new ArgumentNullException(nameof(view));
var entry = new AccordionEntry()
{
Cell = cell,
View = new ScrollView()
{
Content = view
},
OriginalSize = new Size(view.WidthRequest, view.HeightRequest)
};
m_entries.Add(entry);
m_cellStackLayout.Children.Add(entry.Cell);
m_cellStackLayout.Children.Add(entry.View);
var cellIndex = m_entries.Count - 1;
var tapGestureRecognizer = new TapGestureRecognizer();
if (CellTouched == null)
tapGestureRecognizer.Tapped += (object sender, EventArgs e) => OnCellTouchUpInside(cellIndex);
else
tapGestureRecognizer.Tapped += (object sender, EventArgs e) => CellTouched(cellIndex);
cell.GestureRecognizers.Add(tapGestureRecognizer);
}