Como exibir o Toast no centro da tela

88

No Android, quero exibir uma mensagem de brinde na parte inferior da tela, tentei o seguinte:

Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG).show();

Não funciona, como faço corretamente?

Tedris
fonte
Não fazia sentido para mim. O que exatamente você está tentando dizer?
SudoRahul de
1
formatar texto, pergunta correta, código de amostra o que você tentou, tentou usar o mecanismo de pesquisa?
deadfish de
As pessoas que editaram esta questão a editaram incorretamente ... A questão é clara, o corpo da mensagem não é ... por favor, edite-a novamente. O que ele quer perguntar é "Como exibir a mensagem do brinde no centro da tela", a mensagem é "No Android, quero exibir uma mensagem do brinde no centro da tela, para exibir uma mensagem do brinde na parte inferior da tela Eu tento este Toast.makeText (test.this, "bbb", Toast.LENGTH_LONG) .show (); Como coloco uma mensagem do Toast no meio da tela? " Acho que foi algo assim, não como foi editado ...
Elsanty 30/10/2014
Eu amo este artigo É por isso que estou compartilhando. Android Toast Example - clique aqui
Athira Reddy

Respostas:

268

Para exibir o Toast no centro da tela.

Toast toast = Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
Ajay S
fonte
Se alguém quiser ajustar mais a posição, o terceiro argumento em setGravity leva o deslocamento yAxis em pixels.
Sagar
4

Posicionando sua torrada

Uma notificação do sistema padrão aparece perto da parte inferior da tela, centralizada horizontalmente. Você pode mudar esta posição com o setGravity(int, int, int) método. Isso aceita três parâmetros: uma Gravityconstante, um x-positiondeslocamento e umy-position deslocamento.

Por exemplo, se você decidir que a torrada deve aparecer no canto superior esquerdo, você pode definir a gravidade desta forma:

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

Se você quiser deslocar a posição para a direita, aumente o valor do segundo parâmetro. Para diminuir, aumente o valor do último parâmetro.

Nzala
fonte
2

No Xamarin.Android, isso exibe toast no centro da tela:

            Toast toast = Toast.MakeText(ApplicationContext, "bbb", ToastLength.Long);
            toast.SetGravity(GravityFlags.Center, 0, 0);
            toast.Show();
Pollaris
fonte
2

Arquivo de layout para brinde personalizado

<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="5dp" />

<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#000" />

Arquivo .java para brinde personalizado no evento de clique do botão

public class MainActivity extends Activity {

private Button button;

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    button = (Button) findViewById(R.id.buttonToast);

    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {

            // get your custom_toast.xml ayout
            LayoutInflater inflater = getLayoutInflater();

            View layout = inflater.inflate(R.layout.custom_toast,
              (ViewGroup) findViewById(R.id.custom_toast_layout_id));

            // set a dummy image
            ImageView image = (ImageView) layout.findViewById(R.id.image);
            image.setImageResource(R.drawable.ic_launcher);

            // set a message
            TextView text = (TextView) layout.findViewById(R.id.text);
            text.setText("Button is clicked!");

            // Toast...
            Toast toast = new Toast(getApplicationContext());
            toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
            toast.setDuration(Toast.LENGTH_LONG);
            toast.setView(layout);
            toast.show();
        }
    });
}

}

jahan gagan
fonte
1
Toast toast = new Toast(context);
        toast.setGravity(Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0);
toast.show();
Amardeep
fonte
0

Mostrando / Definindo a gravidade do texto no centro (horizontalmente) em koltin

fun Context.longToast(msg: String) {
    Toast.makeText(this, msg, Toast.LENGTH_LONG)
        .apply {
           view.findViewById<TextView>(android.R.id.message)?.gravity = Gravity.CENTER
        }
        .show()
}
Aklesh Singh
fonte
0

O código a seguir pode ser usado para exibir a mensagem brinde

Toast tt = Toast.makeText(MainActivity.this,"Your text displayed here", Toast.LENGTH_LONG);
tt.setGravity(Gravity.CENTER, 0, 0);
tt.show();
Anand Kumar
fonte
-2

O código abaixo funcionou para mim.

Toast.makeText(this, "Toast in center", Toast.LENGTH_SHORT).setGravity(Gravity.CENTER,0,0).show();
Pawan Dubey
fonte
setGravity não retorna o objeto Toast. void setGravity (int gravity, int xOffset, int yOffset)
wrkwrk