Android 7 自定义Toast显示时间 通过longclick触发,显示100秒 setDuration方法实测不好用
时间: 2023-12-03 10:44:12 浏览: 165
android自定义Toast设定显示时间
如果您想要自定义Toast的显示时间,可以使用如下方法:
1. 自定义Toast布局文件,例如toast_custom.xml:
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp"
android:background="#444">
<TextView
android:id="@+id/toast_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#fff" />
</LinearLayout>
```
2. 在代码中使用自定义Toast:
```java
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.toast_custom,
(ViewGroup) findViewById(R.id.toast_layout));
// 设置Toast显示时间为100秒
final Toast toast = new Toast(getApplicationContext());
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
// 设置长按监听器
Button button = (Button) layout.findViewById(R.id.button);
button.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// 显示Toast
toast.show();
// 取消自动关闭
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
toast.cancel();
}
}, 100000);
return true;
}
});
// 显示按钮
button.setVisibility(View.VISIBLE);
```
在这个例子中,我们创建了一个自定义的Toast,设置了显示时间为100秒,并在长按按钮时显示Toast。我们使用Handler来取消Toast的自动关闭,并在100秒后手动关闭Toast。
阅读全文