这是我要展示的方式Toast
为500毫秒。 虽然,它显示超过一秒钟。
Toast.makeText(LiveChat.this, "Typing", 500).show();
我怎样才能显示Toast
只为500毫秒?
这是我要展示的方式Toast
为500毫秒。 虽然,它显示超过一秒钟。
Toast.makeText(LiveChat.this, "Typing", 500).show();
我怎样才能显示Toast
只为500毫秒?
这不能做。 要显示的长度短于举杯Toast.LENGTH_SHORT
,你必须你想要的时间后取消。 就像是:
final Toast toast = Toast.makeText(getApplicationContext(), "This message will disappear in half a second", Toast.LENGTH_SHORT);
toast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 500);
添加到@ Senth的答案,如果你不惯于当你调用showToast方法多次,相同的消息累积时间:
private Toast mToastToShow = null;
String messageBeingDisplayed = "";
/**
* Show Toast message for a specific duration, does not show again if the message is same
*
* @param message The Message to display in toast
* @param timeInMSecs Time in ms to show the toast
*/
public void showToast(String message, int timeInMSecs) {
if (mToastToShow != null && message == messageBeingDisplayed) {
Log.d("DEBUG", "Not Showing another Toast, Already Displaying");
return;
} else {
Log.d("DEBUG", "Displaying Toast");
}
messageBeingDisplayed = message;
// Set the toast and duration
int toastDurationInMilliSeconds = timeInMSecs;
mToastToShow = Toast.makeText(this, message, Toast.LENGTH_LONG);
// Set the countdown to display the toast
CountDownTimer toastCountDown;
toastCountDown = new CountDownTimer(toastDurationInMilliSeconds, timeInMSecs /*Tick duration*/) {
public void onTick(long millisUntilFinished) {
if (mToastToShow != null) {
mToastToShow.show();
}
}
public void onFinish() {
if (mToastToShow != null) {
mToastToShow.cancel();
}
// Making the Toast null again
mToastToShow = null;
// Emptying the message to compare if its the same message being displayed or not
messageBeingDisplayed = "";
}
};
// Show the toast and starts the countdown
mToastToShow.show();
toastCountDown.start();
}
您可以为500毫秒现在这个样子显示举杯:
showToast("Not Allowed", 500);
我发现这个答案 。 虽然有点更复杂它也可以让你创造出比Toast.LENGTH_LONG长祝酒。 您可能需要从1000毫秒蜱持续时间更改为500毫秒。
private Toast mToastToShow;
public void showToast(View view) {
// Set the toast and duration
int toastDurationInMilliSeconds = 10000;
mToastToShow = Toast.makeText(this, "Hello world, I am a toast.", Toast.LENGTH_LONG);
// Set the countdown to display the toast
CountDownTimer toastCountDown;
toastCountDown = new CountDownTimer(toastDurationInMilliSeconds, 1000 /*Tick duration*/) {
public void onTick(long millisUntilFinished) {
mToastToShow.show();
}
public void onFinish() {
mToastToShow.cancel();
}
};
// Show the toast and starts the countdown
mToastToShow.show();
toastCountDown.start();
}
下面是它的工作原理:在倒数通知的时间比其土司根据标志显示的持续时间短,所以烤面包可以再次显示,如果倒计时还没有结束。 如果敬酒再次显示,而它仍然是在屏幕上,它会在那里住的整个持续过程无闪烁。 当倒计时结束后,面包被取消隐藏它,即使它的显示时间还没有结束。
这个工程即使必须证明为比默认持续时间短的持续时间敬酒:当倒计时结束后显示的第一个面包就干脆被取消。
做不到,你用标准的祝酒词叫什么。 也许你应该考虑一下集成第三方库,为您提供更好的吐司选项(名为Crouton)。 我没有用它自己,但人们似乎喜欢它。
你无法控制祝酒词的长度在标准操作系统。
Crouton链接: https://github.com/keyboardsurfer/Crouton
这不能做。 值Toast.LENGTH_SHORT
和Toast.LENGTH_LONG
是0和1。这意味着它们是作为标志,而不是实际的持续时间处理,所以我不认为这将有可能设置持续时间比这些数值的任何其他。
这一个是对我工作的罚款。
final Toast mToastToShow;
int toastDurationInMilliSeconds = 10000;
mToastToShow = Toast.makeText(getApplicationContext(), "Snapshot Saved Successfully.",Toast.LENGTH_LONG);
// Set the countdown to display the toast
CountDownTimer toastCountDown;
toastCountDown = new CountDownTimer(toastDurationInMilliSeconds, 1000 /*Tick duration*/) {
public void onTick(long millisUntilFinished) {
mToastToShow.show();
}
public void onFinish() {
mToastToShow.cancel();
}
};
// Show the toast and starts the countdown
mToastToShow.show();
toastCountDown.start();
倒计时用于显示举杯消息特定的持续时间。
我不相信这是可以做到,你只能使用Toast.LENGTH_LONG
或Toast.LENTH_SHORT
你不能定义你知道速度。
第一次尝试。 这台举杯以毫秒为一个特定时期:
public void toast(int millisec, String msg) {
Handler handler = null;
final Toast[] toasts = new Toast[1];
for(int i = 0; i < millisec; i+=2000) {
toasts[0] = Toast.makeText(this, msg, Toast.LENGTH_SHORT);
toasts[0].show();
if(handler == null) {
handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
toasts[0].cancel();
}
}, millisec);
}
}
}
我尝试了不同的方法,这方法对我的作品
final Toast mytoast = Toast.makeText(getApplicationContext(), jsonObject.getString("response_message"), Toast.LENGTH_SHORT);
mytoast.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
mytoast.cancel();
}
}, 5000);// 5 sec
我已经创造了机器人侧的一类ToastMessage。
public class ToastMessage: IToast
{
public void LongAlert(string message)
{
Toast toast = Toast.MakeText(Android.App.Application.Context, message, ToastLength.Short);
toast.Show();
Device.StartTimer(TimeSpan.FromSeconds(0.5), () =>
{
toast.Cancel();
return false;
});
}
}
我创建界面IToast
public interface IToast
{
void LongAlert(string message);
}
调用由相关性服务
DependencyService.Get<IToast>().LongAlert("Right Answer");
您还可以修改的模式Toast.LENGTH_LONG
例如:
Toast.makeText(getBaseContext(),"your message",Toast.LENGTH_LONG*3).show();
记住的是,该图案具有1秒的持续时间
接受的答案是正确的,但在我的情况下,眨眼干杯(显示和隐藏)可以注意到..
我这里面包不闪烁的解决方案,你可以自定义吐司也是如此。
让我们开始,
1)创建命名LongToast类。
class LongToast {
private LongToast() {}
static void makeLongToast(Context context,String text, long durationInMillis)
{
final Toast toastMessage = new Toast(context);
//Creating TextView.
TextView textView = new TextView(context);
//Setting up Text Color.
textView.setTextColor(Color.parseColor("#fafafa"));
//Setting up Text Size.
textView.setTextSize(17);
//Setting up Toast Message Text.
textView.setText(text);
//Add padding to Toast message.
textView.setPadding(20, 20, 20, 23);
//Add Gravity TextView.
textView.setGravity(Gravity.CENTER);
//Adding TextView into Toast.
toastMessage.setView(textView);
//Access toast message as View.
View toastView = toastMessage.getView();
//Set Custom Background on Toast.
toastView.setBackgroundResource(R.drawable.test);
new CountDownTimer(durationInMillis, 1000)
{
public void onTick(long millisUntilFinished)
{
toastMessage.show();
}
public void onFinish()
{
toastMessage.cancel();
}
}.start();
}
}
2)创建自定义吐司可绘制XML。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#009973"/>
<corners android:radius="20dp" />
<stroke
android:width="4dp"
android:color="#01ffc0"
/>
</shape>
你可以自定义敬酒根据自己的需要。
3)最后调用吐司。
LongToast.makeLongToast(this,"whatever you want",10000);//duration in seconds
裁判: 点击这里查看
谢谢!!。
Toast.makeText(LiveChar.this,"Typing",Toast.LENGTH_SHORT);
这是你的唯一途径..