utilizar usar studio simple make custom como agregar android toast

usar - toast android kotlin



¿Cómo cambiar la posición de Toast en Android? (8)

// Una clase de brindis personalizada donde puede mostrar un brindis personalizado o predeterminado, según lo desee)

public class ToastMessage { private Context context; private static ToastMessage instance; /** * @param context */ private ToastMessage(Context context) { this.context = context; } /** * @param context * @return */ public synchronized static ToastMessage getInstance(Context context) { if (instance == null) { instance = new ToastMessage(context); } return instance; } /** * @param message */ public void showLongMessage(String message) { Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); } /** * @param message */ public void showSmallMessage(String message) { Toast.makeText(context, message, Toast.LENGTH_LONG).show(); } /** * The Toast displayed via this method will display it for short period of time * * @param message */ public void showLongCustomToast(String message) { LayoutInflater inflater = ((Activity) context).getLayoutInflater(); View layout = inflater.inflate(R.layout.layout_custom_toast, (ViewGroup) ((Activity) context).findViewById(R.id.ll_toast)); TextView msgTv = (TextView) layout.findViewById(R.id.tv_msg); msgTv.setText(message); Toast toast = new Toast(context); toast.setGravity(Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show(); } /** * The toast displayed by this class will display it for long period of time * * @param message */ public void showSmallCustomToast(String message) { LayoutInflater inflater = ((Activity) context).getLayoutInflater(); View layout = inflater.inflate(R.layout.layout_custom_toast, (ViewGroup) ((Activity) context).findViewById(R.id.ll_toast)); TextView msgTv = (TextView) layout.findViewById(R.id.tv_msg); msgTv.setText(message); Toast toast = new Toast(context); toast.setGravity(Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0); toast.setDuration(Toast.LENGTH_SHORT); toast.setView(layout); toast.show(); } }

Cuando uso Toast para mostrar un texto emergente en la pantalla, muestra el texto un poco por encima de la parte inferior de la pantalla, que es la posición predeterminada.

Ahora quiero mostrarlo en el medio de la pantalla o en algún lugar según mi elección.

¿Alguien puede guiarme para lograr esto?


Además, si obtiene el error que indica que debe llamar a makeText, el siguiente código lo hace funcionar:

Toast toast= Toast.makeText(getApplicationContext(), "Your string here", Toast.LENGTH_SHORT); toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 0, 0); toast.show();


De la documentación ,

Posicionando su tostada

Aparece una notificación estándar de brindis cerca de la parte inferior de la pantalla, centrada horizontalmente. Puede cambiar esta posición con el setGravity(int, int, int) . Esto acepta tres parámetros: una constante de Gravity , un desplazamiento de x-position y un desplazamiento de y-position .

Por ejemplo, si decides que el brindis debe aparecer en la esquina superior izquierda, puedes establecer la gravedad de esta manera:

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

Si desea desplazar la posición hacia la derecha, aumente el valor del segundo parámetro. Para desplazarlo hacia abajo, aumente el valor del último parámetro.


El método para cambiar el color, la posición y el color de fondo de la tostada es:

Toast toast=Toast.makeText(getApplicationContext(),"This is advanced toast",Toast.LENGTH_LONG); toast.setGravity(Gravity.BOTTOM | Gravity.RIGHT,0,0); View view=toast.getView(); TextView view1=(TextView)view.findViewById(android.R.id.message); view1.setTextColor(Color.YELLOW); view.setBackgroundResource(R.color.colorPrimary); toast.show();

Para una explicación línea por línea: https://www.youtube.com/watch?v=5bzhGd1HZOc


Puedes personalizar la ubicación de tu Toast usando:

setGravity(int gravity, int xOffset, int yOffset)

docs

Esto le permite ser muy específico acerca de dónde desea que esté la ubicación de su Toast.

Una de las cosas más útiles sobre los parámetros xOffset y yOffset es que puede usarlos para colocar el Toast en relación con una vista determinada.

Por ejemplo, si desea hacer un brindis personalizado que aparece en la parte superior de un botón, puede crear una función como esta:

// v is the Button view that you want the Toast to appear above // and messageId is the id of your string resource for the message private void displayToastAboveButton(View v, int messageId) { int xOffset = 0; int yOffset = 0; Rect gvr = new Rect(); View parent = (View) v.getParent(); int parentHeight = parent.getHeight(); if (v.getGlobalVisibleRect(gvr)) { View root = v.getRootView(); int halfWidth = root.getRight() / 2; int halfHeight = root.getBottom() / 2; int parentCenterX = ((gvr.right - gvr.left) / 2) + gvr.left; int parentCenterY = ((gvr.bottom - gvr.top) / 2) + gvr.top; if (parentCenterY <= halfHeight) { yOffset = -(halfHeight - parentCenterY) - parentHeight; } else { yOffset = (parentCenterY - halfHeight) - parentHeight; } if (parentCenterX < halfWidth) { xOffset = -(halfWidth - parentCenterX); } if (parentCenterX >= halfWidth) { xOffset = parentCenterX - halfWidth; } } Toast toast = Toast.makeText(getActivity(), messageId, Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER, xOffset, yOffset); toast.show(); }


configuración de pan tostado en la pantalla superior

toast.setView(view); toast.setGravity(Gravity.BOTTOM , 0, 0); // here i am setting toast at bottom toast.setDuration(Toast.LENGTH_LONG); toast.show();

ahora en el fondo

toast.setView(view); toast.setGravity(Gravity.BOTTOM , 0, 0); // here i am setting toast at bottom toast.setDuration(Toast.LENGTH_LONG); toast.show();

De la misma manera podemos configurar tostadas en izquierda, derecha y centro.

Haga click here


Toast toast = Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG); toast.setGravity(Gravity.CENTER, 0, 0); toast.show();


Toast mytoast= Toast.makeText(getApplicationContext(), "Toast Message", 1); mytoast.setGravity(Gravity.CENTER_HORIZONTAL, 0, 0); // for center horizontal //mytoast.setGravity(Gravity.CENTER_VERTICAL); // for center vertical //mytoast.setGravity(Gravity.TOP); // for top mytoast.show();

El código anterior lo ayudará a mostrar tostadas en el centro de la pantalla o según su elección, para eso solo configure la gravedad de la tostada según su necesidad

Nota: Para este proceso tienes que usar el objeto de Toast.