Набор тостов появляется длина
Вопрос
Есть ли в любом случае, я могу сказать уведомление тоста, чтобы показать только в течение определенного количества времени. Как правило, короче, затем регулярное сообщение для тостов.
Решение
Я нашел решение этого, вызывая Toast.cancel () после определенной задержки, которая короче стандартной длительности тоста.
final Toast toast = Toast.makeText(ctx, "This message will disappear in 1 second", Toast.LENGTH_SHORT);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 1000);
Другие советы
Нет.
Вы можете сделать что-то вроде:
Toast a = Toast.makeText(this, "a", Toast.LENGTH_LONG);
a.setDuration(300);
Но это не покажет себя.
Продолжительность должна быть либо LENGTH_SHORT
или LENGTH_LONG
.
Попробуй это
final Toast toast = Toast.makeText(getBaseContext(), "YOUR MESSAGE",Toast.LENGTH_SHORT);
toast.show();
new CountDownTimer(10000, 1000)
{
public void onTick(long millisUntilFinished) {toast.show();}
public void onFinish() {toast.cancel();}
}.start();
Надеюсь, эта помощь .. Наслаждайтесь .. !!!
Вы можете установить более длинную продолжительность, используя взлом, как описано здесь
//попытайся
public void myToast(String message) {
LayoutInflater myInflator = getLayoutInflater();
View myLayout = myInflator.inflate(R.layout.custom_layout,
(ViewGroup) findViewById(R.id.toastlayout));
TextView myMessage = (TextView) myLayout.findViewById(R.id.label);
myMessage.setText(message);
Toast toast = new Toast(getApplicationContext());
toast.setView(myLayout);
toast.setDuration(400);
myMessage.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL
| Gravity.CENTER_VERTICAL);
toast.show();
}
На акции Android Toast Class кодируется, чтобы принять только Toast.length_short или параметр Toast.length_long при вызове тоста. Значения этих параметров являются 0 и 1 соответственно и не принимают никакого миллисекундного значения при вызове SetDuration (); Если вы должны показать тост на другой продолжительность, чем вы можете рассмотреть вопрос с моим классом Супертуары библиотека. То Супертуар Класс в библиотеке - мимик акций Android Toast Class и может иметь любое значение миллисекундного значения в качестве параметра продолжительности. Я не рекомендую использовать этот класс, чтобы показать тост дольше Чем максимальный запас Android тост длиной из-за затягивания эффекта этих тостов. Я рекомендую вам использовать Суперрактивность Класс, чтобы показать тосты сообщений в деятельности / фрагменте, потому что тост будет уничтожен вместе с вашей деятельностью, исключая любую вероятность затягивающего сообщения. Чтобы использовать этот класс, вы можете создать новый объект:
SuperActivityToast superActivityToast = new SuperActivityToast(this);
superActivityToast.setDuration(SuperToast.DURATION_SHORT);
// setDuration(); can also accept millisecond values
// superActivityToast.setDuration(1000);
superActivityToast.setText("Hello world!");
superActivityToast.show();
Или использовать статический метод:
SuperActivityToast.createDarkSuperActivityToast(this, "Hello world!", SuperToast.DURATION_SHORT).show();
Есть тонны параметров настройки, которые вы можете использовать с библиотекой, проверьте Вики страница!
Вот еще один способ настроить время на ваш выбор:
public void showMsg(String msg, final long duration) {
final Toast toast = Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG);
toast.show();
Thread t = new Thread() {
public void run(){
try {
sleep(duration);
toast.cancel();
} catch (InterruptedException e) {
e.printStackTrace();
}
finally { }
}
};
t.start();
}
Примечание: продолжительность указана в миллисекундах.