Таким образом, проблема с этим в том, что переход обрабатывается методом startHeadersTransitionInternal
, который является частным пакетом. Из-за этого вы не можете переопределить его в большинстве ситуаций. Однако, поскольку это только пакет приватный, а не приватный приватный, есть небольшой взлом, который вы можете сделать.
Сначала создайте в своем приложении пакет с тем же именем, что и BrowseSupportFragment
. Затем создайте класс в этом пакете, который расширяет BrowseSupportFragment
, и переопределите метод-нарушитель без реализации. Это будет выглядеть примерно так:
package android.support.v17.leanback.app; // Different for AndroidX
public class HackyBrowseSupportFragment extends BrowseSupportFragment {
@Override
void startHeadersTransitionInternal(boolean withHeaders) {
// Do nothing. This avoids the transition.
}
}
Тогда вместо расширения BrowseSupportFragment
вы бы расширили HackyBrowseSupportFragment
.
Одна вещь, на которую я обратил внимание, это то, что кнопка «Назад» больше не будет перефокусировать заголовки одной из строк, поэтому вам придется делать это вручную. Кроме того, кажется, что работает нормально.