2013-02-11 32 views
40

Bauerca kéo-sort-listview là một thư viện tuyệt vời cho các chức năng kéo trong một danh sách xem .. https://github.com/bauerca/drag-sort-listviewBauerca kéo-sort-listview ví dụ đơn giản

NHƯNG vấn đề của tôi là các dự án trình diễn là khá phức tạp, tôi không thể theo dõi nó để bao gồm các chức năng trong dự án của tôi ..

Bất kỳ ví dụ đơn giản sẽ được đánh giá ..

Ví dụ tôi chỉ cần một màn hình với danh sách này tùy chỉnh có chứa ba mục .. Hoặc bất kỳ khác đơn giản ví dụ:

Cảm ơn bạn

+10

Tôi cảm thấy nỗi đau của bạn. –

Trả lời

55

Đây là chương trình ngắn về cách sử dụng thư viện mà tôi vừa mới viết. Về cơ bản nó giống như mẫu, tất cả chỉ ở một nơi.

package com.example.dndlist; 

import java.util.ArrayList; 
import java.util.Arrays; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.widget.ArrayAdapter; 


import com.mobeta.android.dslv.DragSortController; 
import com.mobeta.android.dslv.DragSortListView; 

public class MainActivity extends Activity 
{ 
    DragSortListView listView; 
    ArrayAdapter<String> adapter; 

    private DragSortListView.DropListener onDrop = new DragSortListView.DropListener() 
    { 
     @Override 
     public void drop(int from, int to) 
     { 
      if (from != to) 
      { 
       String item = adapter.getItem(from); 
       adapter.remove(item); 
       adapter.insert(item, to); 
      } 
     } 
    }; 

    private DragSortListView.RemoveListener onRemove = new DragSortListView.RemoveListener() 
    { 
     @Override 
     public void remove(int which) 
     { 
      adapter.remove(adapter.getItem(which)); 
     } 
    }; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     listView = (DragSortListView) findViewById(R.id.listview); 
     String[] names = getResources().getStringArray(R.array.random_names); 
     ArrayList<String> list = new ArrayList<String>(Arrays.asList(names)); 
     adapter = new ArrayAdapter<String>(this, 
       R.layout.item_layout, R.id.textView1, list); 
     listView.setAdapter(adapter); 
     listView.setDropListener(onDrop); 
     listView.setRemoveListener(onRemove); 

     DragSortController controller = new DragSortController(listView); 
     controller.setDragHandleId(R.id.imageView1); 
       //controller.setClickRemoveId(R.id.); 
     controller.setRemoveEnabled(false); 
     controller.setSortEnabled(true); 
     controller.setDragInitMode(1); 
       //controller.setRemoveMode(removeMode); 

     listView.setFloatViewManager(controller); 
     listView.setOnTouchListener(controller); 
     listView.setDragEnabled(true); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 
} 

bố trí:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:dslv="http://schemas.android.com/apk/res/com.example.dndlist" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context=".MainActivity" > 

<com.mobeta.android.dslv.DragSortListView 
    android:id="@+id/listview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_margin="10dp" 
    android:dividerHeight="5dp" 
    android:paddingBottom="0dp" 
    android:paddingLeft="10dp" 
    android:paddingTop="0dp" 
    dslv:collapsed_height="2dp" 
    dslv:drag_enabled="true" 
    dslv:drag_handle_id="@drawable/drag_handle" 
    dslv:drag_scroll_start="0.33" 
    dslv:drag_start_mode="onMove" 
    dslv:float_alpha="0.6" 
    dslv:max_drag_scroll_speed="0.5" 
    dslv:remove_enabled="true" 
    dslv:remove_mode="flingRemove" 
    dslv:slide_shuffle_speed="0.3" 
    dslv:sort_enabled="true" 
    dslv:track_drag_sort="false" 
    dslv:use_default_controller="true" /> 
</RelativeLayout> 
+0

Cảm ơn rất nhiều :) Đối với câu trả lời đơn giản của bạn (Y) Mặc dù tôi đã quản lý danh sách kéo-thả-thả của riêng mình nhưng danh sách này vẫn là tốt nhất với hiệu ứng tuyệt vời (Y) – AntounG

+0

Điều đó không hoạt động nữa. – schlingel

+0

Ý của bạn là gì? –

Các vấn đề liên quan