自定义toast,kotlin语言
时间: 2023-10-22 13:05:21 浏览: 234
Android-自定义toast提示可设置做了封装
在 Kotlin 中,可以通过以下步骤创建自定义 Toast:
1. 创建一个 XML 布局文件来定义 Toast 的外观。例如,可以创建一个名为 custom_toast.xml 的文件,并在其中定义 Toast 的布局,例如:
```
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#DAA520"
android:orientation="horizontal"
android:padding="16dp">
<ImageView
android:id="@+id/toast_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/toast_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is a custom toast"
android:textColor="#FFFFFF"
android:textSize="16sp" />
</LinearLayout>
```
2. 在需要显示 Toast 的代码中,使用 LayoutInflater 加载布局,并将其设置为 Toast 的视图。例如:
```
val inflater = LayoutInflater.from(context)
val layout = inflater.inflate(R.layout.custom_toast, null)
val toast = Toast(context)
toast.duration = Toast.LENGTH_SHORT
toast.view = layout
toast.show()
```
3. 可以使用 findViewById() 方法从布局中检索视图,并对它们进行操作。例如:
```
val toastIcon = layout.findViewById<ImageView>(R.id.toast_icon)
toastIcon.setImageResource(R.drawable.ic_custom_icon)
val toastText = layout.findViewById<TextView>(R.id.toast_text)
toastText.text = "This is a custom toast message"
```
完整的示例代码:
```
// Inflate the layout for the toast
val inflater = LayoutInflater.from(context)
val layout = inflater.inflate(R.layout.custom_toast, null)
// Retrieve the views from the layout
val toastIcon = layout.findViewById<ImageView>(R.id.toast_icon)
val toastText = layout.findViewById<TextView>(R.id.toast_text)
// Customize the views
toastIcon.setImageResource(R.drawable.ic_custom_icon)
toastText.text = "This is a custom toast message"
// Create and show the toast
val toast = Toast(context)
toast.duration = Toast.LENGTH_SHORT
toast.view = layout
toast.show()
```
阅读全文