반응형
토스트 LENGTH_LONG 및 LENGTH_SHORT의 기간은 얼마입니까?
LENGTH_LONG 및 LENGTH_SHORT의 정확한 기간 (밀리 초)이 필요합니다. 또한 LENGTH_LONG이 포함 된 토스트 메시지의 지속 시간이 모든 전화 및 API 버전에서 동일한 지속 시간을 갖는지 알아야합니다.
누군가 정의 된 기간이 어디에 있는지 알고 있습니까?, 나는 ms로 정의되어 있음을 의미합니다. LENGTH_LONG이 값이 1 인 int const라는 것을 알고 있지만 실제 기간이 정의 된 위치를 찾을 수 없습니다.
여기에 답변 했습니다 . 당신이 언급 한 것처럼 Toast.LENGTH_SHORT
및 Toast.LENGTH_LONG
MS하지만, 0 또는 1에 있지 않습니다.
실제 기간은 다음과 같습니다.
private static final int LONG_DELAY = 3500; // 3.5 seconds
private static final int SHORT_DELAY = 2000; // 2 seconds
다음은 이러한 플래그 가 정의 된 공식 Android 소스입니다 .
public class NotificationManagerService extends SystemService {
static final int LONG_DELAY = 3500; // 3.5 seconds
static final int SHORT_DELAY = 2000; // 2 seconds
private void scheduleTimeoutLocked(ToastRecord r){
mHandler.removeCallbacksAndMessages(r);
Message m = Message.obtain(mHandler, MESSAGE_TIMEOUT, r);
long delay = r.duration == Toast.LENGTH_LONG ? LONG_DELAY : SHORT_DELAY;
mHandler.sendMessageDelayed(m, delay);
}
}
토스트 기간을 변경할 수 없다는 것은 사실입니다. 그러나 대안을 찾고 있고 정말 토스트로 이것을해야한다면 이것을 시도 할 수 있습니다.
다음 줄에 또 다른 중복 토스트 유지
전의:
Toast.makeText(this, "Hello StackOverFlow", Toast.LENGTH_LONG).show();
Toast.makeText(this, "Hello StackOverFlow", Toast.LENGTH_LONG).show();
사용자는 두 토스트 사이의 전환 변화를 감지하지 못합니다.
감사.
다음과 setDuration
같이 작업에서 기간 재정의를 설정해야합니다 .
int s = 6000; // milisegundo
Snackbar.make(coordinatorLayout, "This is my Snackbar", Snackbar.LENGTH_LONG).setDuration(s)
.show();
Toast.java 클래스에서 지원되는 setDuration () 메소드를 왜 사용하지 않는지 궁금합니다. ??
/**
* Set how long to show the view for.
* @see #LENGTH_SHORT
* @see #LENGTH_LONG
*/
public void setDuration(@Duration int duration) {
mDuration = duration;
}
시행 착오를 통해 2500ms에Toast.LENGTH_LONG
매우 가까운 지속 시간 을 발견했습니다.
반응형
'developer tip' 카테고리의 다른 글
iTunes Connect에서 앱 삭제 (0) | 2020.10.09 |
---|---|
git 저장소에서 사용하지 않는 객체를 제거하는 방법은 무엇입니까? (0) | 2020.10.09 |
C 구조체의 ":"(콜론)-무슨 뜻입니까? (0) | 2020.10.08 |
부트 스트랩 열 높이를 100 % 행 높이로 만드는 방법은 무엇입니까? (0) | 2020.10.08 |
C 프로그래밍 : 유니 코드 용으로 프로그래밍하는 방법? (0) | 2020.10.08 |