【问题标题】:How to Align Android Toast as Centered如何将 Android Toast 居中对齐
【发布时间】:2021-09-26 22:26:59
【问题描述】:

如何将 Android Toast 居中对齐

我在 StackOverflow 和 All over the Internet 中看到了许多相关问题,但它们将 toast 与显示对齐。但是,我想以我的 toast 为中心显示文本!


我的代码来显示我的 Toast

   timeout_on = Toast.makeText(getBaseContext(), "Screen Timeout is Enabled (Your screen will doesn't sleep from now!)", Toast.LENGTH_SHORT);
   timeout_on.show();

【问题讨论】:

  • 您要居中吐司还是吐司的文本?
  • 这能回答你的问题吗? Center text in a toast in Android
  • @Programmerabc 我想让 Toast 的文本居中!
  • 可以,有人请为我的问题开始赏金吗?

标签: android toast text-alignment android-toast


【解决方案1】:

Toast 建立在 TextView 之上,您可以看到默认情况下是左对齐的。使用您想要的对齐方式创建您自己的文本视图并将其设置为您的 Toast 视图

<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center_vertical|center_horizontal"
    android:text="all the text you want"
/>

然后您将 TextView 分配给 Toast,如下所示:

Toast t = new Toast(yourContext);
t.setView(yourNewTextView);

【讨论】:

    【解决方案2】:

    科特林:

    val toast = Toast.makeText(context, "Test", Toast.LENGTH_LONG)
    toast.setGravity(Gravity.CENTER, 0, 0)
    toast.show()
    

    java:

    Toast toast = Toast.makeText(context, "Test", Toast.LENGTH_LONG);
    toast.setGravity(Gravity.CENTER, 0, 0);
    toast.show();
    

    【讨论】:

    • 您的代码在居中吐司时很有用。但我只想让 Toast 的文本居中!
    【解决方案3】:

    尝试以下操作:

    Toast timeout_on = Toast.makeText(getBaseContext(), "Screen Timeout is Enabled (Your screen will doesn't sleep from now!)", Toast.LENGTH_SHORT);
    TextView v = (TextView) timeout_on.getView().findViewById(android.R.id.message);
    if( v != null) v.setGravity(Gravity.CENTER);
    timeout_on.show();
    

    此代码获取 Toast 内的 TextView 实例,并为您提供更多自定义空间(例如设置文本的重力/对齐方式)

    答案来自Marc's Answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-01
      • 2012-02-11
      • 1970-01-01
      • 2014-02-21
      • 1970-01-01
      • 1970-01-01
      • 2018-05-12
      相关资源
      最近更新 更多