Intereting Posts
Почему метод ByteBuffer putShort (значение) работает неправильно в моем случае? Ссылка Int :: class.javaPrimitiveType.kotlin не равна Int :: class.javaObjectType.kotlin Возможность аутентификации пользователя в режиме Firebase, но не может хранить данные в базе данных Firebase Kotlin – единственный экземпляр класса, не являющегося одиночным? Android Room выберите многие из многих LiveData Идиоматические редакторы Kotlin Привязка данных Android к CustomView, неспособная установить viewmodel из Activity в компонент Как создать радиогруппу 2×2? Использование синтетических свойств Котлина Разумные ситуации для использования `Let` Котлина Динамические столбцы таблицы Кинжал 2 не может вводить из подкомпонента (котлин) Как установить автоматический импорт для Kotlin в Android Studio? Kotlin @JvmStatic и случайное переопределение в сопутствующем объекте Kotlin Ktor не может получать данные с данными о местоположении

Работа с вкладками в Котлине (Android Studio)

Я новичок в Kotlin, недавно переехал с Java, в java я использовал

@Override public Fragment getItem(int position) { switch (position) { case 0: Tab1Contact tab1 = new Tab1Contact(); return tab1; case 1: Tab2Contact tab2 = new Tab2Contact(); return tab2; case 2: Tab3Contact tab3 = new Tab3Contact(); return tab3; } return null; } 

для вкладок. Я создаю 3 разных класса для разных вкладок для организации данных. В Котлине я не могу этого сделать, я попробовал

 override fun getItem(position: Int): Fragment? { when (position) { 0 -> { val tab1 = TabOne() return tab1 as Fragment } 1 -> { val tab2 = TabTwo() return tab2 as Fragment } 2 -> { val tab3 = TabThree() return tab3 as Fragment } } return null } 

но приложение падает, если я просто возвращаю tab1, то снова появляется ошибка «Требуемый фрагмент, найденный TabOne»,

Решается путем использования

 class TabOne : android.support.v4.app.Fragment() { } 

вместо

 class TabOne : android.app.Fragment() { } 

Вам необходимо расширить свои классы вкладок до фрагмента. Убедитесь, что вам нужно импортировать назад
совместимость

 import android.support.v4.app.* class TabOne: Fragment() { // Implementations } 

Сделайте для всего класса, затем попробуйте