Intereting Posts
Лучшая практика для изменения ориентации: Android Почему AccountManager.addAccountExplicitly возвращает false? Резервное копирование / восстановление Android: как создать резервную копию внутренней базы данных? Как защитить открытый ключ Google Play при выполнении InApp Billing Как установить edittext, чтобы показать кнопку поиска или ввести кнопку на клавиатуре? Не удается запустить AVD в эмуляторе Android Studio Синхронная и асинхронная деятельность Отражение для доступа к расширенным функциям телефонии Изменить цвет фона панели инструментов программно не меняет название панели инструментов Цвет фона Библиотека пользовательских вкладок Класс не найден при разборке при передаче Parcelable через Messenger на удаленную службу Как реализовать поиск карт Google по адресу в Android? Как вы можете проверить, оценил ли пользователь ваше приложение на рынке Android? Как я могу использовать распознавание речи без раздражающего диалога на телефонах Android Что такое пространство имен приложений Android?

Как разместить макет внутри диалогового окна Android?

Я пытаюсь создать настраиваемый диалог и сосредоточиться на его содержании, но он всегда заканчивается выравниванием по левому краю. Вот aboutdialog.xml:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:a="http://schemas.android.com/apk/res/android" a:orientation="vertical" a:id="@+id/AboutDialogLayout" a:layout_width="fill_parent" a:layout_height="fill_parent" a:layout_gravity="center_horizontal" a:gravity="center_horizontal"> <ImageView a:id="@+id/imageView1" a:src="@drawable/pricebook" a:layout_height="wrap_content" a:layout_width="wrap_content"/> <TextView a:layout_height="wrap_content" a:textAppearance="?android:attr/textAppearanceLarge" a:id="@+id/textView1" a:text="Price Book" a:layout_width="wrap_content"/> <TextView a:layout_height="wrap_content" a:id="@+id/textView2" a:layout_width="wrap_content" a:text="foo"/> </LinearLayout> 

И мой (релевантный) код:

 Dialog d = new Dialog(this); d.setContentView(R.layout.aboutdialog); d.setTitle(R.string.app_name); 

Что мне здесь не хватает? Спасибо за помощь.

Образ: Снимок экрана диалогового окна

Solutions Collecting From Web of "Как разместить макет внутри диалогового окна Android?"

Попробуйте изменить на это: a:layout_gravity="center_horizontal|center_vertical"
ИЛИ
Используйте Relative_Layout и выровняйте линейный макет с центром родителя с помощью fill_parent для Relative wrap_content для Linear.

Хотя он работает со мной по центру

Modify Dialog ViewGroup (FrameLayout), который содержит макет содержимого. Я использую статический метод и вызываю его внутри onActivityCreated () в DialogFragments:

 /** * Center dialog content inside available space * @param dialog */ public static void centerDialogContent(Dialog dialog) { ViewGroup decorView = (ViewGroup) dialog.getWindow().getDecorView(); View content = decorView.getChildAt(0); FrameLayout.LayoutParams contentParams = (FrameLayout.LayoutParams)content.getLayoutParams(); contentParams.gravity = Gravity.CENTER; content.setLayoutParams(contentParams); } 

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

Я думаю, что обертывание вышеупомянутого макета внутри другого макета сделало бы это

Можете ли вы попытаться изменить линейную ориентацию LinearLayout на простоту гравитации? См. Разницу, объясненную здесь: Gravity и layout_gravity на Android