Я пытаюсь создать WearableListView
, аналогичный тому, который установлен в приложении настроек по умолчанию. У меня есть WearableListView
, который прокручивает и анимирует каждый элемент. Все, что мне нужно сейчас, это заголовок сверху списка, который прокручивается при прокрутке списка. Это то же поведение, что и заголовок «Настройки» в приложении «Настройки».WearableListView Header
Единственный способ, который я нашел для этого, используется здесь: How to Set the Layout for topEmptyRegion, реализует WearableListView.OnScrollListener()
. Затем используется метод onAbsoluteScrollChange()
для установки смещения TextView
, используемого в качестве заголовка. Но, согласно Android Developer References, этот метод устарел. В документации даже указано: БУДЬТЕ ПРЕДУПРЕЖДЕНЫ НЕ ИСПОЛЬЗУЙТЕ ЭТО Это может привести к неправильным значениям при изменении содержимого RecyclerView.
Я хотел бы знать, нашел ли кто-нибудь еще способ реализовать заголовок, который ведет себя таким образом, который не устарел. Возможно, что-то, что я пропустил в документации Android Wear?
EDIT:
Я пытался так или иначе реализовать этот метод. Как выясняется, WearableListView.setOnScrollListener()
не принимает new WearableListView.OnScrollListener()
. Вместо этого он попросил своего родителя RecyclerView.OnScrollListener
, который не имеет метода onAbsoluteScrollChange()
. У него есть метод onScrolled()
, который я пытался реализовать. Как оказалось, это полностью отменяет прослушиватель прокрутки по умолчанию для WearableListView
и делает его таким, чтобы центрированный элемент мог находиться вне центра. Определенно не тот эффект, который я искал.
Я на самом деле пытался реализовать что-то подобное (я редактировал свой вопрос, чтобы отразить это), и это не дало результатов, которые я искал. – Bryan
Вам необходимо использовать WearableListView.addOnScrollListenet (WearableListView.OnScrollListener), а затем переопределить то, что я предложил в своем решении, и это должно работать. –
Вау, я использовал 'setOnScrollListener()' вместо 'addOnScrollListener()' Я неправильно читал. Это прекрасно работает, спасибо. Надеюсь, вы не возражаете, я отправил вам ответ, чтобы это отразить. – Bryan