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


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

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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.