Создание окна слайда над основным действием, если нажата кнопка - PullRequest
1 голос
/ 22 октября 2019

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

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

Например.

enter image description here

Но когда я нажимаю на кнопку, чтобы показать окно снизу:

enter image description here

т.е. изображение и кнопка ПУСК из действия также видны. Он должен частично покрывать активность с моим окном фрагмента, которое я пробовал, с выделением белого фона в FrameLayout.

Ответы [ 3 ]

1 голос
/ 22 октября 2019

Попробуйте этот способ кода, чтобы отобразить окно

public void showDefaultDialog() {
final Dialog dialog = new Dialog(MainActivity.this, android.R.style.Theme_Holo_Dialog);
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
     dialog.getWindow().getAttributes().windowAnimations = R.style.animWindow;
     dialog.setContentView(R.layout.dialogview);
     dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.WHITE));
     dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT,   ViewGroup.LayoutParams.MATCH_PARENT);
}     

поместите приведенную ниже строку кода в файл style.xml

 <style name="animWindow">
     <item name="@android:windowEnterAnimation">@anim/bottom_to_top</item>
     <item name="@android:windowExitAnimation">@anim/top_to_bottom</item>
</style>

поместите приведенную ниже строку кода в папку для рисования

- bottom_to_top.xml

 <?xml version="1.0" encoding="utf-8"?>
     <set xmlns:android="http://schemas.android.com/apk/res/android">
      <translate 
         android:fromYDelta="100%p"
         android:toYDelta="0%p"
         android:fillAfter="true"
         android:duration="700" />
     </set>

- top_to_bottom.xml

 <?xml version="1.0" encoding="utf-8"?>
     <set xmlns:android="http://schemas.android.com/apk/res/android">
      <translate 
         android:fromYDelta="0%p"
         android:toYDelta="100%p"
         android:fillAfter="true"
         android:duration="700" />
     </set>
1 голос
/ 22 октября 2019

Вы уже пробовали с Dialog, так что, возможно, BottomSheetDialogFragment будет хорошим выбором для вас, поскольку он простирается от DialogFragment.

. В блоге Medium есть короткий пример: Использование BottomSheetDialogFragment с Руководством по проектированию материалов

Поскольку вам необходим полноэкранный режим Dialog: BottomSheetDialogFragment - как установить расширенную высоту (или минимальное смещение верха) - это сообщение SO о настройкерасширенная высота BottomSheetDialogFragment.

См. Также рекомендации по проектированию материалов на Модальные нижние листы , а также ссылка

1 голос
/ 22 октября 2019

Вы можете использовать нижний лист.

Ниже приведена ссылка на учебник, которая поможет вам

Android Bpttom sheet medium

AndroidНижний лист mindcor

Дайте мне знать, это вам помогает или нет + 1

...