-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathMainActivity.java
76 lines (63 loc) · 3.04 KB
/
MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package com.dyhdyh.helper.itemtouch.example;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View;
import com.dyhdyh.helper.itemtouch.example.adapter.ExampleAdapter;
import com.dyhdyh.helper.itemtouch.example.exampledata.ExampleData;
import com.dyhdyh.helper.itemtouch.simple.OnMovePreviewListener;
import com.dyhdyh.helper.itemtouch.simple.SimpleMovePreviewListener;
public class MainActivity extends AppCompatActivity {
RecyclerView rv;
private PreviewPopupWindow mPreviewWindow;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPreviewWindow = new PreviewPopupWindow(this);
rv = findViewById(R.id.rv);
final ExampleAdapter adapter = new ExampleAdapter(ExampleData.create());
rv.setLayoutManager(new GridLayoutManager(this, 4));
rv.setAdapter(adapter);
/*
//普通的Item滑动触摸监听
rv.addOnItemTouchListener(new SimpleItemTouchMoveListener() {
@Override
public void onItemTouchMove(boolean isTouchChild, View childView, int childPosition, MotionEvent event) {
//isTouchChild = 是否触摸在itemView上
//childView = 当isTouchChild为true时指触摸的itemView,false时为null
//childPosition = 当isTouchChild为true时指触摸的item位置,false时为-1
Log.d("onItemTouchMove----->", isTouchChild + "," + childPosition + "," + event.getX() + "," + event.getY() + "," + event.getAction());
}
@Override
public boolean onInterceptEnable() {
//当需要拦截事件回调onItemTouchMove的时候返回true,否则false,一般需要动态控制
return true;
}
});
*/
//微信表情商店预览效果
rv.addOnItemTouchListener(new SimpleMovePreviewListener(rv, new OnMovePreviewListener() {
@Override
public void onPreview(View childView, int childPosition) {
Log.d("SimpleMovePreview----->", "onPreview---->" + childPosition + "," + childView);
final ExampleData item = adapter.getItem(childPosition);
mPreviewWindow.setFileUrl(item.getFile());
if (mPreviewWindow.isShowing()) {
mPreviewWindow.dismiss();
}
//居中
int offsetX = (mPreviewWindow.getWidth() - childView.getWidth()) / 2;
int height = childView.getHeight() + mPreviewWindow.getHeight();
mPreviewWindow.showAsDropDown(childView, -offsetX, -height);
}
@Override
public void onCancelPreview() {
Log.d("SimpleMovePreview----->", "onCancelPreview---->");
mPreviewWindow.dismiss();
}
}));
}
}