오픈 소스 drag-sort-listview 는 좌우 슬라이딩 삭제 와 정렬 을 실현 합 니 다.
drag-sort-listview 를 다운로드 한 후 library 를 항목 에 가 져 온 다음 이 listview 를 사용 해 야 할 항목 에 추가 합 니 다.
XML 레이아웃 파일 에서:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<com.mobeta.android.dslv.DragSortListView
xmlns:dslv="http://schemas.android.com/apk/res/com.test.androidtest"
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="5dp"
android:dividerHeight="5dp"
android:fastScrollEnabled="true"
dslv:collapsed_height="2dp"
dslv:drag_enabled="true"
dslv:drag_handle_id="@id/drag_handle"
dslv:drag_scroll_start="0.99"
dslv:drag_start_mode="onDown"
dslv:float_alpha="0.6"
dslv:max_drag_scroll_speed="0.6"
dslv:remove_enabled="true"
dslv:remove_mode="flingRemove"
dslv:slide_shuffle_speed="0.5"
dslv:sort_enabled="true"
dslv:track_drag_sort="false"
dslv:use_default_controller="true" />
</LinearLayout>
그 중에서 com.test.androidtest 자원 경 로 를 프로젝트 패키지 경로 로 바 꿉 니 다.(AndroidManifest.xml 파일 에서 볼 수 있 습 니 다.)Activity 의 실현 은 다음 과 같다.
package com.test.androidtest;
import java.util.ArrayList;
import java.util.Arrays;
import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import com.mobeta.android.dslv.DragSortListView;
public class MainActivity extends ListActivity {
private ArrayAdapter<String> adapter;
private String[] array;
private ArrayList<String> list;
private DragSortListView.DropListener onDrop = new DragSortListView.DropListener() {
@Override
public void drop(int from, int to) {
String item = adapter.getItem(from);
adapter.notifyDataSetChanged();
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));
}
};
private DragSortListView.DragScrollProfile ssProfile = new DragSortListView.DragScrollProfile() {
@Override
public float getSpeed(float w, long t) {
if (w > 0.8f) {
// Traverse all views in a millisecond
return ((float) adapter.getCount()) / 0.001f;
} else {
return 10.0f * w;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DragSortListView lv = (DragSortListView) getListView();
lv.setDropListener(onDrop);
lv.setRemoveListener(onRemove);
lv.setDragScrollProfile(ssProfile);
array = getResources().getStringArray(R.array.countries);
list = new ArrayList<String>(Arrays.asList(array));
adapter = new ArrayAdapter<String>(this,
R.layout.list_item_handle_right, R.id.text, list);
setListAdapter(adapter);
}
}
list_item_handle_right.xml 의 레이아웃 은:4
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="@dimen/item_height"
android:orientation="horizontal">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="@dimen/item_height"
android:layout_weight="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:gravity="center_vertical"
android:paddingLeft="8dp" />
<!-- <ImageView
android:id="@id/drag_handle"
android:background="@drawable/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="@dimen/item_height"
android:layout_weight="0" /> -->
</LinearLayout>
ImageView 주석 이 떨 어 지면 미 끄 러 지지 않 아 도 됩 니 다.해석 이 거 칠 어서 벽돌 을 던 져 옥 을 끌 어 올 리 는 역할 을 했 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.