как сделать так, чтобы диалоговое окно появилось слева? - PullRequest
2 голосов
/ 30 сентября 2011

Я хочу добавить OnclickListener для кнопки, в которой я хочу отображать диалоговое окно слева от экрана при щелчке по нему. Я пытался реализовать это, но он всегда появляется в центре экрана. Любая идея о том, как это реализовать?

Ответы [ 3 ]

3 голосов
/ 30 сентября 2011

Если я правильно понимаю ваш вопрос - вы хотите, чтобы ваш диалог не отображался в центре экрана.Затем посмотрите на этот пример кода.

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setItems(items, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int item) {

            if(item == 0) {

            } else if(item == 1) {

            } else if(item == 2) {

            }
        }
    });

     AlertDialog dialog = builder.create();
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
     WindowManager.LayoutParams WMLP = dialog.getWindow().getAttributes();


     WMLP.x = 100;   //x position
     WMLP.y = 100;   //y position

     dialog.getWindow().setAttributes(WMLP);

     dialog.show();

Здесь значение x position - это пиксели слева направо.Для y значение позиции снизу вверх.

1 голос
/ 30 сентября 2011

Перед вызовом #show() на вашем AlertDialog вы можете настроить гравитацию в диалоговом окне:

AlertDialog dlg = ...;
dlg.getWindow().getAttributes().gravity = Gravity.LEFT|Gravity.CENTER_VERTICAL;

Это сместит диалог влево от экрана. Настройте флаги гравитации по своему вкусу.

0 голосов
/ 14 января 2013

Просто добавьте следующую строку в ваш Java-файл, и лишнее пространство будет удалено из диалогового окна.

Диалоговое окно; Диалог = новый Диалог (Activity.this, android.R.style.Theme_DeviceDefault_Light_Panel);

Над кодом работает для меня. Я надеюсь, что это будет работать и для других. Примечание. Вам нужно передать контекст активности вместо обычного контекста (getApplicationContext ()).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...