Android 7.0.2自定义Toast显示时间 通过longclick触发,显示200秒,setDuration不好使
时间: 2023-12-03 15:42:36 浏览: 52
在 Android 中,Toast 的显示时间是有限制的,它的默认显示时间为 Toast.LENGTH_SHORT 或 Toast.LENGTH_LONG,分别为 2 秒和 3.5 秒。如果你想要显示更长时间的 Toast,可以自定义一个 Toast 来实现。
以下是自定义 Toast 显示时间的示例代码:
```
// 定义 Toast 的显示时间
private static final int TOAST_DURATION = 200000;
// 定义 Toast 对象
private Toast mToast;
// 初始化 Toast 对象
mToast = Toast.makeText(this, "长按触发", Toast.LENGTH_SHORT);
// 长按触发事件
view.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// 设置 Toast 显示时间
mToast.setDuration(TOAST_DURATION);
mToast.show();
return true;
}
});
```
通过设置 Toast 的显示时间,可以实现自定义 Toast 的显示时间。但是需要注意的是,Toast 的显示时间并不能太长,否则会影响用户体验。建议不要超过 10 秒。
相关问题
Android 7.0.2自定义Toast显示时间 通过longclick触发,显示100秒,setDuration不好使
Android 7.0.2的Toast默认显示时间为短时间,大约为2秒钟。如果您需要自定义Toast的显示时间,可以通过以下步骤实现:
1. 创建一个自定义的Toast布局文件,例如toast_layout.xml。
2. 在该布局文件中添加一个TextView控件,用于显示Toast的内容。
3. 在代码中使用LayoutInflater加载该布局文件,并将其设置为Toast的View。
4. 调用Toast的setView方法设置Toast的View。
5. 调用Toast的show方法显示Toast。
6. 通过Handler设置Toast的显示时间,例如100秒,然后在100秒后调用Toast的cancel方法取消Toast的显示。
以下是示例代码:
```java
// 加载自定义的Toast布局文件
View toastView = LayoutInflater.from(context).inflate(R.layout.toast_layout, null);
// 设置Toast的View
Toast toast = new Toast(context);
toast.setView(toastView);
// 显示Toast
toast.show();
// 设置Toast的显示时间为100秒
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// 取消Toast的显示
toast.cancel();
}
}, 100000); // 100秒
```
需要注意的是,由于Toast是在主线程中显示的,因此如果设置了过长的显示时间,可能会影响应用的性能和用户体验。建议根据实际需求设置合理的显示时间。
Android 7.0.2自定义Toast显示时间 通过longclick触发,显示100秒,setDuration不好使、
如果`setDuration()`方法不起作用,可以尝试使用`Handler`和`Runnable`来实现自定义`Toast`显示时间。以下是一个示例代码:
```
final Toast toast = Toast.makeText(getApplicationContext(), "自定义Toast", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0); //设置Toast显示位置居中
//长按触发Toast显示100秒
Button button = findViewById(R.id.button);
button.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
toast.show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 100000); //100秒后隐藏Toast
return true;
}
});
```
在长按事件中,首先显示Toast,并通过`Handler`的`postDelayed()`方法延时100秒后取消Toast的显示。这样就可以实现自定义Toast的显示时间了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)