创建一个来自屏幕顶部的Toast

时间:2015-12-24 06:25:23

标签: android android-layout android-custom-view toast android-library

我想知道我们如何在Android中创建一个自定义Toast ,在屏幕顶部显示如下?

enter image description here

我来自iOS背景,现在我必须创建这样的自定义控件。

请指点什么?

谢谢

5 个答案:

答案 0 :(得分:3)

点击此链接:https://github.com/gfranks/GFMinimalNotifications,这就是我想要的,它对我来说很好。

输出:

enter image description here

或者您可以像这样准备自定义吐司:

View layout = getLayoutInflater().inflate(R.layout.customtoast,
            (ViewGroup) findViewById(R.id.custom_toast_layout));
Toast toast = new Toast(getApplicationContext());
toast.setDuration(Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP, 0, 0);
toast.setView(layout);
toast.show();

答案 1 :(得分:2)

您可以使用 crouton 来实现此目的。

说明

  

Crouton将显示在开发人员决定的位置。   标准将是应用程序窗口的顶部。你可以排队   多个用于显示的面包丁,将一个接一个地显示

为任何CharSequence创建一个Crouton:

Crouton.makeText(Activity, CharSequence, Style).show();

more details on Crouton针对Android的上下文敏感通知

有很多可以用来干杯的描述here

答案 2 :(得分:1)

试试这个::

Toast toast= Toast.makeText(getApplicationContext(), 
"Your string here", Toast.LENGTH_SHORT);  
toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 0, 0);
toast.show();

为职位

添加此行
 toast.setGravity(Gravity.TOP, 0, 0);

答案 3 :(得分:0)

creat自定义toast布局,toast.xml:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
      android:background="@color/yellow"
      android:layout_width="match_parent"
      android:padding="8dp"
      android:gravity="center"
      android:textSize="32sp"
      android:layout_height="256dp"/>

使用上面的布局创建吐司:

    static Toast t;

public static void show(Context c, String s) {
    if (t == null) {
        t = new Toast(c.getApplicationContext());
        t.setGravity(Gravity.TOP | Gravity.FILL_HORIZONTAL, 0, 0);
        LayoutInflater inflater = LayoutInflater.from(c);
        TextView v = (TextView) inflater.inflate(R.layout.toast, null);
        t.setView(v);
        t.setDuration(Toast.LENGTH_LONG);
    }
    TextView v = (TextView) t.getView();
    v.setText(s);
    t.show();
}

答案 4 :(得分:-1)

如您所见,有许多解决方案。但最简单的方法是在XML布局文件中创建一个布局,并使其不可见。当需要显示此视图时,使其可见并启动动画。