问题描述
如何将 Android Toast 居中对齐
我在 StackOverflow 和 All over Internet 中看到了许多相关问题,但它们将 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();
解决方法
尝试以下操作:
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);