Intereting Posts
EditText вызывает onFocusChanged три раза, а не один раз Повторная настройка загрузки изображения дает ошибку EditText с большим Spannable занимает много времени, чтобы перепланировать Android-образ диска базы данных искажен Build.gradle и проект libs Ящик для навигации Элементы, не регистрирующие событие click Ошибка телефонной почты. «Метатег метаданных не поддерживается. Пожалуйста, добавьте его при использовании плагина cordova-plugin-whitelist. " Как серверы подключения GCM отправляют сообщения на устройство Android? Неожиданный конец данных блока в Gradle sync Получение строк из курсора в Android? Определите причину раздувания размера файла odex Как определить, совместимо ли устройство Android с андроидной одеждой Добавлена ​​поддержка Android-v4-библиотеки с appcompat-v7 Com.android.support:design:23.3.0 сломан, когда пользовательский вид, используемый в Tablayout Как установить фон сворачиваемой панели инструментов с пользовательским поведением, чтобы он соответствовал всему экрану

Как связать навигационный ящик с кнопкой перетаскивания?

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

Краткое объяснение:

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

Пример реального приложения:

В некоторых приложениях, таких как Waze, есть:

Введите описание изображения здесь

Моя попытка ..

Поэтому, прежде чем я схожу с ума и настраиваю прослушиватели и раздражающие вещи, я сначала попытался сделать простой. Я попытался просто добавить кнопку внутри NavigationView в xml-файле.

Heres my acivity_main.xml:

<?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" android:fitsSystemWindows="true" tools:openDrawer="start"> <include layout="@layout/app_bar_main" android:layout_width="match_parent" android:layout_height="match_parent" /> <android.support.design.widget.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_marginEnd="-80dp" android:text="drag me->" /> </android.support.design.widget.NavigationView> 

Я также обязательно добавил эту строку к родительскому:

 android:clipChildren="false" 

(Так что кнопка сможет вычеркнуть границы …)

И вот как это выглядит (на предварительном просмотре):

Введите описание изображения здесь

При реальном тестировании кнопка действительно находится на месте, как на картинке, но если ящик полностью закрыт, кнопка исчезает.

Если я немного открою ящик, кнопка станет видимой.

Во всяком случае, кнопка не реагирует на касание .. Я не могу закрыть ящик, перетащив кнопку.

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

Спасибо, вперед!

Поместите свою кнопку за пределы вида навигации

 button.setOnClikclistener({ drawer.closeDrawer(GRAVITY) / drawer.openDrawer(GRAVITY) } 

Если вы хотите, чтобы кнопка перемещалась по краю ящика, у вас есть отдельное поведение для кнопки с использованием компоновки координаторов и материалов

Это можно найти в Handy https://www.bignerdranch.com/blog/customizing-coordinatorlayouts-behavior/