首页 > 解决方案 > 将吐司放在顶部

问题描述

使用 Toast.makeToast() 为自定义 toast 充气并不像系统 toast 那样位于顶部。是否可以将自定义充气吐司放置在与系统吐司相同的位置?

使用 Toast.makeText() 的系统吐司

通过充气定制吐司

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/toastLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="#00000000"
    tools:ignore="UseCompoundDrawables">

    <androidx.cardview.widget.CardView
        android:id="@+id/containerView"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:cardCornerRadius="40dp"
        app:cardElevation="16dp"
        android:background="@android:color/darker_gray"
        app:cardUseCompatPadding="true"
        tools:ignore="UnusedAttribute">

        <TextView
            android:id="@+id/toastTitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

    </androidx.cardview.widget.CardView>
</LinearLayout>

我认为问题在于使用 cardElevation 值越高,它出现在屏幕上的值越低。有什么想法可以克服这个问题吗?

标签: androidnativetoast

解决方案


 Toast.makeText(MainActivity.this,"Sample Toast",Toast.LENGTH_LONG)
 .setGravity(Gravity.CENTER_VERTICAL,0, 0)
 .show();

推荐阅读