如何将 Android Toast 居中对齐

问题描述

如何将 Android Toast 居中对齐

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


Example Image

显示 Toast 的代码

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

解决方法

尝试以下操作:

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

,

科特林:

def ceil(n):
    return math.ceil(int(n*10**10)/10**10)

Java:

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

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);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...