展会信息港展会大全

Android Developers:Toasts
来源:互联网   发布日期:2015-10-03 11:19:35   浏览:1403次  

导读:Toast在一个小的弹窗提供一个关于操作的简单反� K?鼋鎏畛湎?⑺?璧目占洌?⑶业鼻暗腁ctivity保持可见和交互。例如,在你发送一个邮件之前离开,触发一个”Draft saved”Toa...

Toast在一个小的弹窗提供一个关于操作的简单反溃它仅仅填充消息所需的空间,并且当前的Activity保持可见和交互。例如,在你发送一个邮件之前离开,触发一个”Draft saved”Toast,让你知道你稍后能继续编辑。Toast在一段时间后自动显示。

如果用户被要求显示一个装填消息,考虑使用一个Notification消息代替。

基础

——————————————————————————————————————————————

首先,使用makeText()方法实例化一个Toast对象。这个方法获取三个参数:应用程序Context,文本信息,和Toast持续时间。它返回一个正确实例化的Toast对象。你可以使用show()方法显示Toast消息,如下面所示:

[java]

Context context = getApplicationContext();

CharSequence text = "Hello toast!";

int duration = Toast.LENGTH_SHORT;

Toast toast = Toast.makeText(context, text, duration);

toast.show();

这个例子演示了大多数Toast通知你需要的事情。你应该很少需要什么。你可以,然而,想把Toast放在不同的位置,或者使用你自己的布局替代一个简单的文本消息。下面的章节描述了你如何能做这些事情。

你也能束缚你的方法,并避免持有Toast对象,想这样:

[java]

Toast.makeText(context, text, duration).show();

定位你的Toast

—————————————————————————————————————————————————————————————————————

标准的toast消息在屏幕的靠近底部,水平居中显示。你能使用setGravity(int,int,int)方法改变这个位置。它接受三个参数:一个Gravity常量,一个x轴位置偏移,一个y轴偏移。

例如,如果你决定这个Toast应该显示在左上角,你可以这样设置位置:

[java]

toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);

如果你想拖动这个位置到右边,增加第二个参数的值。推动它到下面,增加最后一个参数的值。

创建一个自定义的Toast视图

—————————————————————————————————————————————————————————————————————

如果一个简单的文本消息不能满足,你能为你的Toast消息创建一个自定义的布局。为了创建一个自定义的布局,定义一个视图布局,在XML或者你的应用代码中,并传递根视图对象给setView(View)方法。

例如,你能使用下面的XML(保存为tast_layout.xml)为Toast创建布局,在屏幕右边的结果可见:

[html]

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/toast_layout_root"

android:orientation="horizontal"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:padding="8dp"

android:background="#DAAA"

>

<ImageView android:src="@drawable/droid"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginRight="8dp"

/>

<TextView android:id="@+id/text"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="#FFF"

/>

</LinearLayout>

注意,这个线性布局元素的ID是”toast_layout”。你必须使用ID来填充来之这个XML的布局,如下面所示:

[java]

LayoutInflater inflater = getLayoutInflater();

View layout = inflater.inflate(R.layout.custom_toast,

(ViewGroup) findViewById(R.id.toast_layout_root));

TextView text = (TextView) layout.findViewById(R.id.text);

text.setText("This is a custom toast");

Toast toast = new Toast(getApplicationContext());

toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);

toast.setDuration(Toast.LENGTH_LONG);

toast.setView(layout);

toast.show();

首先,使用getLayoutInflater()方法(或者getSystemService())获取LayoutInflater,然后使用inflate(int,ViewGroup)方法从XML中填充布局。第一个参数是布局资源ID,并且第二个参数是根视图。你可以使用这个填充的布局寻找在这个布局中的更多的视图对象,所以现在捕捉和定义ImageView和TextVewi元素中的内容,例如位置和时间。然后调用setView(View)方法将它传递给填充的布局。你现在可以通过调用show()方法使用你的自定义布局来显示消息。

注意:除非你将使用setView(View)方法定义布局,不要使用使用公共的构造函数构造Tost。如果你没有一个自定义布局来使用,你必须使用makeText(Context,int,int)方法来创建Toast。

赞助本站

人工智能实验室

相关热词: android开发 教程

相关内容
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港