我有一个 Delphi Berlin 构建的 Android 应用程序,其中包含一个 TListBox。在某些时候,我手动添加了一个 TListItem (下面的代码)。不幸的是,用户可以对其进行向右或向左滑动,这似乎会删除列表项,并且会在稍后的某个时间点导致应用程序崩溃。
如何禁用在 TListBoxItem 上向右或向左滑动的功能?我没有看到任何用于删除功能的滑动,并且我已经尝试捕获向右滑动的手势,但没有运气。如果我将 Selectable 设置为 false,我将无法再滑动它,但是上面的 Item 的绘画将被删除。
在运行时添加项目的代码:
procedure TMyForm.InfoButtonCLick(Sender: TObject)
var
Item : TListBoxItem;
begin
Item := TListBoxItem.Create(nil);
Item.Text := '';
Item.Height := 200;
Item.HitTest := false;
Item.Selectable := false;
// Other things I tried without success
// Item.Touch.InteractiveGestures := [];
// Item.DragMode := TDragMode.dmManual;
// tried to capture swite right and left and declare them as handled
// Item.OnGesture := OnListItemGesture;
// lb_Files is the ListBox
lb_Files.InsertObject(lb_Files.ItemIndex + 1, Item);
lb_Files.ScrollToItem(Item);
end;