国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java實現拖拽列表項的排序功能

Java實現拖拽列表項的排序功能

2020-08-18 10:59一只菜雞 Java教程

這篇文章主要介紹了Java實現拖拽列表項的排序功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

在一些允許用戶自定義欄目順序的app(如:鳳凰新聞、網易云音樂等),我們可以方便地拖拽列表項來完成列表的重新排序,進而完成對欄目順序的重排。這個功能很人性化,而實現起來其實很簡單(甚至都不用寫什么后臺代碼),只有三步。

①把冰箱門打開

首先,我們需要讓冰箱的大門敞開,也就是允許我們進行拖拽的相關操作。以ListView為例,注意下面幾個屬性。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<StackPanel>
    <ListView x:Name="list"
         AllowDrop="True"
         CanReorderItems="True"
         IsSwipeEnabled="True">
      <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
          <Setter Property="Background" Value="Gray"/>
          <Setter Property="Foreground" Value="White"/>
          <Setter Property="Margin" Value="4"/>
        </Style>
      </ListView.ItemContainerStyle>
    </ListView>
    <Button Click="Button_Click">Show Items</Button>
    <TextBlock x:Name="txt"/>
  </StackPanel>

AllowDrop屬性允許元素進行拖動,它繼承自UIElement基類,為所有可視元素支持。

CanReorderItems屬性繼承自ListViewBase基類,允許列表控件的項可以重新排序。

IsSwipeEnabled屬性(swipe有“輕掃”之意)也需要設置為“True”,否則在觸摸屏等輸入設備下無法進行操作。相關的詳盡說明在MSDN文檔里有介紹(https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Xaml.Controls.ListViewBase),此部分摘錄部分原文:

Remarks

Setting IsSwipeEnabled to false disables some default touch interactions, so it should be set to true when these interactions are needed. For example:

If item selection is enabled and you set IsSwipeEnabled to false, a user can deselect items by right-clicking with the mouse, but can't deselect an item with touch by using a swipe gesture.
If you set CanDragItems to true and IsSwipeEnabled to false, a user can drag items with the mouse, but not with touch.
If you set CanReorderItems to true and IsSwipeEnabled to false, a user can reorder items with the mouse, but not with touch.
You typically set IsSwipeEnabled to false to disable swipe animations when items in the view don't support interactions that use the swipe gesture, like deselecting, dragging, and reordering. Disabling the animation when it's not needed can improve the performance of your app.

(有趣的是最后一段:當列表不允許輕掃手勢(撤銷選定,拖動,拖拽重排)時,我們可以“顯式”地將IsSwipeEnabled屬性設置為False來提升應用的性能。)

②把大象裝進去

前臺ok后,我們就可以在后臺加點東西,把我們的排序邏輯(其實并沒有,微軟已經寫好了)添加進去。這個demo里,我用了一個按鈕和一個文本框來觀察重排的結果。如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public sealed partial class MainPage : Page
  {
    public MainPage()
    {
      this.InitializeComponent();
      for (int i = 0; i < 10; i++)
      {
        list.Items.Add($"-----THIS IS ITEM {i}-----");
      }
    }
    private void Button_Click(object sender, RoutedEventArgs e)
    {
      txt.Text = string.Empty;
      foreach (var item in list.Items)
      {
        txt.Text += item.ToString()[18] + " ";
      }
    }
  }

這樣,重新排序后,點擊按鈕,我們即可觀察到結果了。

③把冰箱門關上

把大象(?)裝進去之后,最后就是我們的收尾工作了。顯然,剛才的列表只是一個中間的載體,是我們待排序欄目的簡單顯示。一般而言,這個listview會安置在contentdialog或是popup里,那么怎么在重排后立即讓父頁面上的欄目得到相應,進行重排呢?我們用個預定義的委托即可,加在剛才的后臺代碼里(冰箱能裝的東西其實挺多的)。

?
1
public Action action;

然后在父頁面注冊方法,比如:           

?
1
2
3
4
5
6
btn.Click += async (s, e) =>
       {
         var dialog = new Dialogs.Sort();
         dialog.action += async () => { await sortagain(); };
         await dialog.ShowAsync();
      };

以上所述是小編給大家介紹的Java實現拖拽列表項的排序功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:http://www.cnblogs.com/DaweiX/p/6427637.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色婷婷精品久久二区二区蜜臂av | 偷拍第一页 | 黄色网址在线免费 | 欧美寂寞影院 | 久久久一区二区三区 | 96成人爽a毛片一区二区 | 高清久久| 欧美一级在线 | 一级久久久 | 国产欧美精品在线 | 成人影院av| 国产一区二区三区 | 日韩成人在线观看 | 国产一区免费 | 91亚洲一区 | 一区二区国产在线观看 | 成人免费视频在线观看 | 国产精品原创av片国产免费 | 成人黄色在线观看 | 国产精品日本欧美一区二区三区 | 国产在线精品一区 | 色乱码一区二区三区网站 | 中文字幕在线观看 | 国产一区二区精品在线观看 | 亚洲一区二区在线 | 欧美精品一区二区三区蜜桃视频 | 中文字幕一区二区三区在线视频 | 一本大道久久a久久精二百 在线a人片免费观看视频 | 91在线免费网站 | 狠狠av| 色九色 | 精品美女一区 | 无毒黄网 | 中文字幕日韩欧美一区二区三区 | 一二三区字幕免费观看av | 99亚洲伊人久久精品影院红桃 | 久久久精品网 | 久久亚洲一区二区 | 亚洲激情在线 | 污污视频网址 | 国产午夜视频 |