Intereting Posts
Возможно ли заставить пользователей более старых версий приложений обновляться? SearchView развернуть / свернуть анимацию в Android Как создать общий макет для Android XML для всех видов деятельности Получить случайное изображение из галереи телефона и отобразить в поле зрения Webview не может загрузить https url в android? Android MapView всегда вызывает OutOfMemoryError во вложенных элементах Подписывание ароматов продуктов с помощью градиента Перечисление байтового размера в Java Android objectAnimator animate backgroundColor of Layout Twitter не работает с twitter4j в android Есть ли простой способ настроить эмулятор Android для доступа к локальной сети хост-машины? Android получит бесплатный размер внутренней / внешней памяти Ошибка Android Marketplace: «Сервер не смог обработать ваш apk. Попробуй еще раз." Список всех образов камеры в Android Передача данных из одной активности в другую с помощью пакета – не отображение во второй активности

Как обрабатывать проблемы нового нижнего листа библиотеки поддержки / дизайна?

Задний план

Я использовал модифицированную версию библиотеки нижнего листа ( здесь , на основе этой библиотеки , также написал об этом здесь ), чтобы иметь хороший переход между свернутым (AKA «peeked») состоянием и расширенным состоянием.

У библиотеки были свои проблемы, но в целом я исправил их все.

Проблема

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

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

  1. Нижний лист отображается сразу, а на неправильной высоте.
  2. Он должен иметь настройку высоты сразу, без поддержки «wrap_content», а также не может иметь высоту «match_parent» при расширении, так как он будет поверх других видов, включая панель инструментов.
  3. Когда он скрыт, он по-прежнему реагирует на события касания и снова отображается.
  4. Он сработает, когда я установлю его начальное состояние.

И все это, даже не пытаясь обработать то, что я хотел, это 3-фазные, которые я делал раньше.

Что я пробовал

Сначала я думал, что просто не пользуюсь библиотекой, поэтому я попробовал 2 образца, которые я нашел:

  • https://github.com/vipulshah2010/BottomSheets
  • https://github.com/chikkutechie/androidexamples

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

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

  • https://code.google.com/p/android/issues/detail?id=203114
  • https://code.google.com/p/android/issues/detail?id=203115
  • https://code.google.com/p/android/issues/detail?id=203113
  • https://code.google.com/p/android/issues/detail?id=203654

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

Вопрос

Есть ли способ справиться с этими проблемами? Каким должен быть правильный код для использования нижних листов с помощью библиотеки поддержки?

Solutions Collecting From Web of "Как обрабатывать проблемы нового нижнего листа библиотеки поддержки / дизайна?"

ОБНОВЛЕНИЕ Ссылка на полный ответ, где вы можете найти все объяснения о том, как получить полное поведение, такое как Google Maps.


Помощь вам в том, что вы хотите

Что я хотел, это 3 фазы, которые я сделал раньше

Используя библиотеку поддержки 23.x +, вы можете сделать это, изменив значение по умолчанию BottomSheetBehavior добавив еще один stat со следующими шагами:

  1. Создайте класс Java и расширьте его из CoordinatorLayout.Behavior<V>
  2. Скопируйте код вставки из файла BottomSheetBehavior умолчанию в новый.
  3. Измените метод clampViewPositionVertical :

  4. Добавить новое состояние

    Public static final int STATE_ANCHOR_POINT = X;

  5. Измените следующие методы: onLayoutChild , onStopNestedScroll , BottomSheetBehavior<V> from(V view) и setState (необязательно)

Итак, теперь у вас есть эти состояния:
STATE_HIDDEN
STATE_COLLAPSED
STATE_DRAGGING
STATE_ANCHOR_POINT
STATE_EXPANDED.

Вы можете использовать setBottomSheetCallback как в оригинальной BottomSheetBehavior

XML (без каких-либо данных о параллаксе, таких как карты Google) выглядит так:

 <CoordinatorLayout> <FrameLayout/> <AppBarLayout> <CollapsingToolbarLayout> <Toolbar/> </CollapsingToolbarLayout > </AppBarLayout > <NestedScrollView> <LinearLayout/> </NestedScrollView> </CoordinatorLayout > 

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

И вот как это выглядит:
[ CustomBottomSheetBehavior ]

Вы можете использовать эту библиотеку . Насколько я видел, в этой библиотеке нет проблем.