Я использую эту библиотеку в своем приложении. Я написал так, что у меня есть MainActivity с макетом, предоставленным библиотекой, а именно. что-то вроде этого:
<SlidingPanel>
<MainContentLayout>
<SlidingPanelContentLayout>
</SlidingPanel>
MainContentLayout - это в основном FrameLayout, куда я загружаю фрагмент. Теперь вот где он становится хитрым - у фрагмента есть код, который обращается к компонентам макета slideupPanel. Когда я набираю компонент в Android Studio, он автоматически импортирует правильный файл класса свойств syntheti c как import kotlinx.android.synthetic.main.layout_sliding_panel.*
, и даже автозаполнение работает для отображения правильных полей в качестве свойств. Однако, когда я запускаю приложение, происходит сбой, говоря, что это поле пустое. Чтобы это исправить, я должен добавить (activity as MainActivity).
в качестве префикса ко всем полям. И когда я запускаю это, это решает проблему.
Есть ли более чистый способ сделать это, потому что запись (действие как MainActivity). во многих местах кажется раздражающим. Есть ли для этого директива kotlin, и почему библиотека привязок представления KotlinX не обнаруживает автоматически, что расположение скользящей панели находится на другой компоновке, и, следовательно, записывает в корректный класс удобства, чтобы получить к ней правильный доступ без сбоя приложения?