Как отобразить тост в центре экрана

89

В Android я хочу отображать всплывающее сообщение внизу экрана, я пробовал это:

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

Не работает, как мне правильно сделать?

тедрис
источник
Для меня это не имело никакого смысла. Что именно вы пытаетесь сказать?
SudoRahul
1
формат текста, правильный вопрос, образец кода что вы пробовали, вы даже пробовали пользоваться поисковой системой?
deadfish
Люди, которые редактируют этот вопрос, редактируют его неправильно ... Вопрос ясен, тело сообщения нет ... пожалуйста, отредактируйте его еще раз. Он хочет спросить: «Как отобразить тост-сообщение в центре экрана», это сообщение: «В Android я хочу отображать всплывающее сообщение в центре экрана, чтобы отобразить всплывающее сообщение в нижней части экрана. Я пробую этот Toast.makeText (test.this, "bbb", Toast.LENGTH_LONG) .show (); Как мне разместить сообщение Toast в середине экрана? " Я думаю, было что-то в этом роде, а не так, как это было отредактировано ...
Elsanty
Я люблю эту статью Вот почему я делюсь этим. Пример Android Toast - нажмите здесь
Athira Reddy

Ответы:

271

Для отображения тоста в центре экрана.

Toast toast = Toast.makeText(test.this,"bbb", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
Аджай С
источник
Если кто-то хочет дополнительно изменить положение, третий аргумент в setGravity принимает смещение yAxis в пикселях.
Sagar
4

Размещение тоста

Стандартное всплывающее уведомление появляется в нижней части экрана по центру по горизонтали. Вы можете изменить это положение с помощью setGravity(int, int, int) метода. Он принимает три параметра: Gravityконстанту, x-positionсмещение и y-positionсмещение.

Например, если вы решили, что тост должен отображаться в верхнем левом углу, вы можете установить гравитацию следующим образом:

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

Если вы хотите сместить позицию вправо, увеличьте значение второго параметра. Чтобы сдвинуть его вниз, увеличьте значение последнего параметра.

Нзала
источник
2

В Xamarin.Android всплывающее сообщение отображается в центре экрана:

            Toast toast = Toast.MakeText(ApplicationContext, "bbb", ToastLength.Long);
            toast.SetGravity(GravityFlags.Center, 0, 0);
            toast.Show();
полларис
источник
2

Файл макета для пользовательского тоста

<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" />

.java файл для пользовательского тоста при нажатии кнопки

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();
        }
    });
}

}

Джахан Гаган
источник
1
Toast toast = new Toast(context);
        toast.setGravity(Gravity.FILL_HORIZONTAL | Gravity.BOTTOM, 0, 0);
toast.show();
Amardeep
источник
0

Отображение / установка гравитации текста в центре (по горизонтали) в колтинах

fun Context.longToast(msg: String) {
    Toast.makeText(this, msg, Toast.LENGTH_LONG)
        .apply {
           view.findViewById<TextView>(android.R.id.message)?.gravity = Gravity.CENTER
        }
        .show()
}
Аклеш Сингх
источник
0

Следующий код можно использовать для отображения тост-сообщения

Toast tt = Toast.makeText(MainActivity.this,"Your text displayed here", Toast.LENGTH_LONG);
tt.setGravity(Gravity.CENTER, 0, 0);
tt.show();
Ананд Кумар
источник
-2

Приведенный ниже код работал у меня.

Toast.makeText(this, "Toast in center", Toast.LENGTH_SHORT).setGravity(Gravity.CENTER,0,0).show();
Паван Дубей
источник
setGravity не возвращает объект Toast. void setGravity (int gravity, int xOffset, int yOffset)
wrkwrk 05