2016-12-30 1 views
1

Я создал пользовательский вид для обработки моей реализации нижнего листа. Я попытался восстановить поведение нижнего листа, используя BottomSheetBehavior.from(this), но поскольку мне нужно поведение в конструкторе, this еще не инициализирован.Получить координаторLayout Behavior в конструкторе пользовательского вида

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

Мне не удалось найти другие способы получить поведение.

[EDIT]

Посмотрев немного глубже, кажется, не будет проблемой this не инициализируется. Проблема в том, что LayoutParams не является экземпляром CoordinatorLayout.LayoutParams, когда BottomSheetBehavior.from вызывается непосредственно из конструктора, но они являются CoordinatorLayout.LayoutParams при вызове из runnable, созданного в конструкторе.

+0

Вы пытались использовать метод 'view.post (Runnable)'? Это будет выполнено после завершения задачи ожидания. –

ответ

0

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

Я считаю, что это намного чище, чем использование runnable.

Смежные вопросы