rio中实现手机端listview滑动删除

1、toolbar+line+speedbutton X 2+label+image X 4+listview组件。

2、组件属性设置。

1)image的属性。

  Size.Width = 9.000000000000000000
  Size.Height = 49.000000000000000000
  Size.PlatformDefault = False
  WrapMode = Stretch

2)listview的属性

listview.ItemAppearanceClassName := 'TDynamicAppearance';
listview.ItemEditAppearanceClassName := 'TDynamicAppearance';
listview.HeaderAppearanceClassName := 'TListHeaderObjects';
listview.FooterAppearanceClassName := 'TListHeaderObjects';
listview.OnUpdateObjects := listviewUpdateObjects;
listview.ItemSpaces.Left := 0.000000000000000000;
listview.ItemSpaces.Right := 0.000000000000000000;
listview.Align := Client;
listview.ItemAppearance.ItemHeight := 70;

 3)label的属性


  Label1.Parent := ToolBar1;
  Label1.Align := Contents;
  Label1.TextSettings.HorzAlign := Center;
  Label1.Text := '任务';
  Label1.TabOrder := 1;

4)line的属性

  Line1.Parent := ToolBar1;
  Line1.Align := Bottom;
  Line1.LineType := Diagonal;
  Line1.Size.Height := 1.000000000000000000;
  Line1.Stroke.Color := xFFF2F2F2;

3、事件代码。

formcreate

        img1.Visible := false;
        img2.Visible := false;
        img3.Visible := false;
        img4.Visible := false;
    
        listview.DeleteButtonText := '删除';    //Excluir

listview滑动事件

procedure TForm1.listviewDeletingItem(Sender: TObject; AIndex: Integer;
  var ACanDelete: Boolean);
var
    txt : TListItemText;
begin
    txt := TListItemText(Form1.listview.Items[AIndex].Objects.FindDrawable('Text1'));

    if txt.TagString <> '111' then
        showmessage('Excluindo tarefa id = ' + txt.tagstring)
    else
        ACanDelete := false;

end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
        listview.BeginUpdate;

        Add_content(110, 1, '打印');
        Add_content(111, 2, 'email建议');
        Add_content(112, 3, '开发站点');
        Add_content(113, 4, '配置服务器');
        Add_content(114, 1, '配置数据库');
        Add_content(115, 4, '创建电子表格');
        Add_content(116, 1, '回复电话');
        Add_content(117, 2, '导入客户端数据');
        Add_content(118, 3, '处理照片产品');

        listview.EndUpdate;
end;
procedure Add_content(id, tipo : integer; descricao : string);
var
        item : TListViewItem;
        txt : TListItemText;
        img : TListItemImage;
begin
        with form1 do
        begin
                item := listview.Items.Add;
                item.Objects.Clear;
                item.TagString := id.ToString;

                with item do
                begin
                        
                        img := TListItemImage(Objects.FindDrawable('Image2'));
                        img.PlaceOffset.X := 0;
                        img.PlaceOffset.Y := 0;
                        img.Width := 10;
                        img.Height := 70;
                        img.ScalingMode := TImageScalingMode.Stretch;

                        case tipo of
                            1: img.Bitmap := img_fazer.Bitmap;
                            2: img.Bitmap := img_importante.Bitmap;
                            3: img.Bitmap := img_andamento.Bitmap;
                            4: img.Bitmap := img_feito.Bitmap;
                        end;



                     
                        txt := TListItemText(Objects.FindDrawable('Text1'));
                        txt.Text := descricao;
                        txt.Font.Size := 18;
                        txt.Height := 70;
                       
                        txt.PlaceOffset.X := 25;
                        txt.PlaceOffset.Y := 0;
                        txt.TagString := id.ToString;

                end;
        end;
end;
procedure TForm1.listviewDeletingItem(Sender: TObject; AIndex: Integer;
  var ACanDelete: Boolean);
var
    txt : TListItemText;
begin
    txt := TListItemText(Form1.listview.Items[AIndex].Objects.FindDrawable('Text1'));

    if txt.TagString <> '111' then
        showmessage('删除任务编号= ' + txt.tagstring)
    else
        ACanDelete := false;

end;

发布了303 篇原创文章 · 获赞 59 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/winniezhang/article/details/104398298