网友通过本文主要向大家介绍了android搜索功能实现,android 6.0新功能,android 搜索功能,android 录音功能,android 辅助功能等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
Android滑动删除功能,android滑动删除
今天学习了新的功能那就是滑动删除数据。先看一下效果
我想这个效果大家都很熟悉吧。是不是在qq上看见过这个效果。俗话说好记性不如赖笔头,为了我的以后,为了跟我一样自学的小伙伴们,我把我的代码粘贴在下面。
activity_lookstaff.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/tv_title" style="@style/GTextView" android:text="全部员工" /> <com.rjxy.view.DeleteListView android:id="@+id/id_listview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/tv_title"> </com.rjxy.view.DeleteListView> </RelativeLayout>
delete_btn.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <Button android:id="@+id/id_item_btn" android:layout_width="60dp" android:singleLine="true" android:layout_height="wrap_content" android:text="删除" android:background="@drawable/d_delete_btn" android:textColor="#ffffff" android:paddingLeft="15dp" android:paddingRight="15dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="15dp" /> </LinearLayout>
d_delete_btn.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/btn_style_five_focused" android:state_focused="true"></item> <item android:drawable="@drawable/btn_style_five_pressed" android:state_pressed="true"></item> <item android:drawable="@drawable/btn_style_five_normal"></item> </selector>
DeleteListView .java
package com.rjxy.view; import com.rjxy.activity.R; import android.content.Context; import android.util.AttributeSet; import android.view.Gravity; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewConfiguration; import android.widget.Button; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.PopupWindow; public class DeleteListView extends ListView { private static final String TAG = "DeleteListView"; /** * 用户滑动的最小距离 */ private int touchSlop; /** * 是否响应滑动 */ private boolean isSliding; /** * 手指按下时的x坐标 */ private int xDown; /** * 手指按下时的y坐标 */ private int yDown; /** * 手指移动时的x坐标 */ private int xMove; /** * 手指移动时的y坐标 */ private int yMove; private LayoutInflater mInflater; private PopupWindow mPopupWindow; private int mPopupWindowHeight; private int mPopupWindowWidth; private Button mDelBtn; /** * 为删除按钮提供一个回调接口 */ private DelButtonClickListener mListener; /** * 当前手指触摸的View */ private View mCurrentView; /** * 当前手指触摸的位置 */ private int mCurrentViewPos; /** * 必要的一些初始化 * * @param context * @param attrs */ public DeleteListView(Context context, AttributeSet attrs) { super(context, attrs); mInflater = LayoutInflater.from(context); touchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); View view = mInflater.inflate(R.layout.delete_btn, null); mDelBtn = (Button) view.findViewById(R.id.id_item_btn); mPopupWindow = new PopupWindow(view, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); /** * 先调用下measure,否则拿不到宽和高 */ mPopupWindow.getContentView().measure(0, 0); mPopupWindowHeight = mPopupWindow.getContentView().getMeasuredHeight(); mPopupWindowWidth = mPopupWindow.getContentView().getMeasuredWidth(); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { int action = ev.ge