Установите тост гравитации сверху слева в любом текстовом представлении Android
Я хочу установить тост-сообщение в верхней | левой позиции в любом текстовом представлении моего приложения, поэтому я использовал этот код
public class CustomToast extends Activity {
TextView mTextView1;
TextView mTextView2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.custom_toast);
mTextView1=(TextView)findViewById(R.id.textView);
mTextView2=(TextView)findViewById(R.id.textView2);
mTextView1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showCustomAlert( );
}
});
mTextView2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showCustomAlert( );
}
});
}
public void showCustomAlert( )
{
Context context = getApplicationContext();
// Create layout inflator object to inflate toast.xml file
LayoutInflater inflater = getLayoutInflater();
// Call toast.xml file for toast layout
View toastRoot = inflater.inflate(R.layout.toast, null);
Toast toast = new Toast(context);
// Set layout to toast
toast.setView(toastRoot);
toast.setGravity(Gravity.TOP|Gravity.LEFT ,0, 0);
toast.setDuration(2000);
toast.show();
}
}
Когда я запускаю код, приведенный выше, тост отображается в верхней части экрана каждый раз, когда текст не отображается, см. Изображение ниже.
Изначально два экрана просмотра текста
Когда я нажимаю на второе текстовое представление, я получаю эту позицию тоста
Любая идея, как я могу решить эту проблему?
2 ответа
Все, что вам нужно сделать, это управлять позицией Toast в соответствии с позицией текстового просмотра на вашем экране. Затем вам нужно динамически добавлять координаты представления каждый раз к вашему Toast. Поэтому вам нужно получить координаты вида, по которому щелкают, используя:
buttonView.getLocationOnScreen(location);
Затем установите положение тоста:
toast.setGravity(Gravity.TOP|Gravity.LEFT,buttonView.getRight()+5,
location[1]-10);
Выше приведено только для справки. Для более ясной и описательной идеи, пожалуйста, смотрите Это и Это.
Используйте код ниже:
Toast toast= Toast.makeText(getApplicationContext(),
"Your string here", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);
toast.show();