250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- python
- Passport
- 해시키
- alb
- 파이썬
- https
- Prometheus
- selenium
- OAuth
- Cordova
- ubuntu
- MacOS
- nginx
- 안드로이드
- Vue.js
- pip
- FCM
- Laravel
- php
- mac
- node
- AWS
- flutter
- SSH
- window
- 구글 API
- Android
- PostgreSQL
- Vue
- MYSQL
Archives
- Today
- Total
print( sjw.iq == 200) output : true
[Android] 더블탭, 더블클릭 구현 (GestureDetector를 사용하지 않고 단순 코드) 본문
728x90
반응형
안녕하세요~!
인스타에서 더블클릭을 하면 좋아요가 눌리게 되잖아요~?
저도 그런 기능을 추가해야되고, 앞으로도 뭔가 자주 이용할거 같아서 포스팅을 합니다~!
그리고 더블탭, 더블클릭 기능을 GestureDetector를 사용하지 않고 단순하게 소스코드로 만들어보려고 합니다.
GestureDetector를 사용하면 더 간단하게 구현할 수 있겠지만...
어플 구조상 구현하기가 애매해서요...
어댑터 클래스가 다음과 같이 있습니다!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
public void setListener(OnItemClickListener listener) {
this.listener = listener;
}
public interface OnItemClickListener {
void onClickMore(int pos);
void onClickLike(int pos);
void onClickComment(int pos);
void onClickShare(int pos);
void onClickDetail(int pos);
void onClickMap(int pos);
void onClickImage(int reviewPos, int imageIdx);
void onClickProfile(int pos);
void onClickReplyDetail(int pos);
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
그리고 리사이클 뷰가 있는 프래그 먼트에는 OnitemClickListener 가 구현되어있는데요!
그중에서 onClickImage만 따로 보여드리겠습니다!
저 메소드에 구현해 놨거든요~!
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
|
private boolean waitDouble = true;
private static final int DOUBLE_CLICK_TIME = 200; // double click timer
@Override
public void onClickImage(int reviewPos, int imageIdx) {
if (waitDouble == true) {
waitDouble = false;
Thread thread = new Thread() {
@Override
public void run() {
try {
sleep(DOUBLE_CLICK_TIME);
if (waitDouble == false) {
waitDouble = true;
//single click event
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
} else {
waitDouble = true;
//double click event
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
waitDouble 과 DOUBLE_CLICK_TIME를 전역변수로 선언해주시고~
단일 클릭과 더블 클릭 이벤트라고 주석이 되어 있는 부분에 필요하신 부분을 입력하시면 됩니다~!
한번 쑤욱 보시면 별로 어려울 것 없을 거 같네요~~
그러면 저는 이만 물러가보겠습니다~!
728x90
반응형
'Android' 카테고리의 다른 글
[Android] 앱 스토어 등록된 APK의 해시키, 서명된 APK 의 해시키 (0) | 2020.02.07 |
---|---|
[Android] error:protocol fault (couldn't read status) (0) | 2020.01.21 |
[Android] Webview 에서 javascript open 오류 (2) | 2019.06.24 |
[안드로이드] 구글맵 PlayStore 등록 시 맵 안보이는 현상 (0) | 2019.03.15 |
[안드로이드] 구글 맵 SHA-1 인증서 지문 등록 (1) | 2019.02.28 |
Comments