返回介绍

1. makeText

发布于 2024-12-23 21:45:11 字数 1599 浏览 0 评论 0 收藏 0

先从 makeText 方法入手,一步步深入。

  public static Toast makeText(Context context, CharSequence text, @Duration int duration) {
    Toast result = new Toast(context);

    LayoutInflater inflate = (LayoutInflater)
        context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View v = inflate.inflate(com.android.internal.R.layout.transient_notification, null);
    TextView tv = (TextView)v.findViewById(com.android.internal.R.id.message);
    tv.setText(text);
    //传入下个 view
    result.mNextView = v;
    //Toast 显示的时间长度
    result.mDuration = duration;

    return result;
  }
  

对应的 transient_notification.xml,源码位于: frameworks\base\core\res\layout\transient_notification.xml

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="?android:attr/toastFrameBackground">
  
    <TextView
      android:id="@android:id/message"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_weight="1"
      android:layout_gravity="center_horizontal"
      android:textAppearance="@style/TextAppearance.Toast"
      android:textColor="@color/bright_foreground_dark"
      android:shadowColor="#BB000000"
      android:shadowRadius="2.75"
      />
  
  </LinearLayout>

从 makeText 方法看,就是 Toast 的自定义 view 的那部分代码。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文