android - usar - Establecer la posición dinámica de Toast en una vista
toast make in android (1)
vale, finalmente descubrí cómo hacer un brindis al lado de la casilla de verificación u otra vista
1. Necesita obtener la ubicación en la pantalla de la vista, por
buttonView.getLocationOnScreen(location);
para más referencia, vea getLocationOnScreen (int [])
2. Establecer la gravedad para tostar usando
toast.setGravity(Gravity.TOP|Gravity.LEFT,buttonView.getRight()+5,
location[1]-10);
lo importante aquí es establecer x-coordinate
de la tostada a la derecha de la vista, p. ej., buttonView.getRight()
y obtener la coordenada y de la location[1]
, que se obtiene de getLocationOnScreen()
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
Toast toast=Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
View view=toast.getView();
int location[]=new int[2];
buttonView.getLocationOnScreen(location);
switch(buttonView.getId())
{
case R.id.chkRed: if(chkRed.isChecked())
{
chkGreen.setChecked(false);
chkBlue.setChecked(false);
chkYellow.setChecked(false);
toast.setText("You Selected Red");
toast.setGravity(Gravity.TOP|Gravity.LEFT,buttonView.getRight()+5, location[1]-10);
view.setPadding(1, 1, 1, 1);
view.setBackgroundColor(Color.RED);
}
}
}
En primer lugar, esto no es un código completo
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
Toast toast=Toast.makeText(getApplicationContext(), "", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER_HORIZONTAL, 0, 0);
View view=toast.getView();
switch(buttonView.getId())
{
case R.id.chkRed: if(chkRed.isChecked())
{
chkGreen.setChecked(false);
chkBlue.setChecked(false);
chkYellow.setChecked(false);
toast.setText("You Selected Red");
toast.setGravity(Gravity.NO_GRAVITY,buttonView.getRight(), chkRed.getTop());
//top does not align
//it align perfectly to right of checkbox
view.setBackgroundColor(Color.RED);
}
break;
}
}
Así que ahora, el problema es que quiero mostrar pan tostado al lado de la casilla de verificación, intenté trabajar con setGravity()
, pero simplemente no funciona y se ha intentado y probado durante mucho tiempo, pero sin progreso.
Cómo mostrar las tostadas junto a la casilla de verificación.