Установите динамическое положение тоста в представлении

Прежде всего это не полный код

@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; } } 

Итак, проблема заключается в том, что я хочу отображать тост рядом с setGravity() , я пытался работать с setGravity() , но он просто не работает, и его ударили и пытались в течение длительного времени, но без прогресса

Как отобразить тост возле флажка.

Solutions Collecting From Web of "Установите динамическое положение тоста в представлении"

Хорошо, я наконец понял, как получить тост возле флажка или другого вида

1. Вам нужно найти место на экране

 buttonView.getLocationOnScreen(location); 

Для получения дополнительной справки см. GetLocationOnScreen (int [])

2. Установите гравитацию на тост, используя

 toast.setGravity(Gravity.TOP|Gravity.LEFT,buttonView.getRight()+5, location[1]-10); 

Здесь важна x-coordinate тоста справа от вида, например, buttonView.getRight() и получить y-координату из location[1] , которое вы получаете от 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); } } }