In Android voglio visualizzare un messaggio di avviso nella parte inferiore dello schermo, ho provato questo:
Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG).show();
Non funziona, come lo faccio correttamente?
In Android voglio visualizzare un messaggio di avviso nella parte inferiore dello schermo, ho provato questo:
Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG).show();
Non funziona, come lo faccio correttamente?
Risposte:
Per visualizzare il Toast al centro dello schermo.
Toast toast = Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
Posizionamento del toast
Una notifica di tipo avviso popup standard viene visualizzata nella parte inferiore dello schermo, centrata orizzontalmente. Puoi cambiare questa posizione con il setGravity(int, int, int)
metodo. Accetta tre parametri: una Gravity
costante, un x-position
offset e un y-position
offset.
Ad esempio, se decidi che il brindisi deve apparire nell'angolo in alto a sinistra, puoi impostare la gravità in questo modo:
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
Se vuoi spostare la posizione a destra, aumenta il valore del secondo parametro. Per spostarlo verso il basso, aumentare il valore dell'ultimo parametro.
File di layout per toast personalizzato
<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" />
File .java per brindisi personalizzato all'evento clic del pulsante
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();
}
});
}
}
Visualizzazione / impostazione della gravità del testo al centro (orizzontalmente) in 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()
}
Il codice seguente può essere utilizzato per visualizzare il messaggio Toast
Toast tt = Toast.makeText(MainActivity.this,"Your text displayed here", Toast.LENGTH_LONG);
tt.setGravity(Gravity.CENTER, 0, 0);
tt.show();
Il codice seguente ha funzionato per me.
Toast.makeText(this, "Toast in center", Toast.LENGTH_SHORT).setGravity(Gravity.CENTER,0,0).show();