Грубо говоря, мне из activity нужно сделать view-элемент. Возможно ли это? Если возможно, то про что почитать? Уточнение, у меня приложение на flutter, там я хочу вывести, условно, стороннее приложение (могу получить activity из SDK), но флаттеру нужно именно view. Гуглил. Возможно, не правильно. Что гуглить? Через фрагменты как-то?
Что значит сделать view из activity? Это же абсолютно разные вещи. Какая задача стоит на самом деле?
наоборот, "превратить" активити в вью. задача в уточнении. нужно в флаттере через PlatformView вывести сторонние нативные экраны. PlatformView в методе getView должен возвращать View, а у меня есть только Activity... или я чего-то не понимаю... Имею такое: class App : TravelApp() { override val config: Config = Config( tabs = setOf( Tab.Flights, Tab.Hotels, // Tab.RentalCars("Cars program link"), Tab.AppInfo ) ) }
Ну так спросите в чату по флаттеру. Натив тут то причем?
Нельзя превратить активити во вью или наоборот, как, например, нельзя превратить Int в Array. Это совершенно разные вещи.
не в обиду :) все такие умные... в чате флаттера посылают в Котлин, в Котлине в андроид :) И это как раз нативная часть, а не флаттер
я, возможно, ошибаюсь, но фрагмент, по сути, это активити в активити? Или нет?
Доступ к view осуществляется через findViewById или инструменты вроде ViewBinding. Не знаю, актуально ли это для связки с флаттером.
Фрагмент - не активити.
если б мне нужен был простой вью...
Ну вот, это уже не натив тогда
Мы не знаем, что вам на самом деле нужно. Телепаты в отпуске 😊
Ок. Значит ошибаюсь и зря трачу время. Задача не решаема... только если в сторонний sdk лезть
ээээ... странная логика. Мне нужно из андроидовского активити "сделать" вью. Куда уж нативнее
"Превратить" активити в вью :)
Define превратить
В иерархии наследования активити нет класса View. Можете сами убедиться. Это разное.
ну, я ж не специалист в нативщине. Может как-то можно конвертировать. Вот и пытаюсь выяснить, можно или нет. Если можно, то как... я ж не настаиваю...
Зачем нужно конвертировать???
Блин... я задачу уже три раза описывал... По другому не смогу
Короче, встроить активити в какой-то контейнер нельзя. Фрагмент должно быть можно. Фрагмент - это, типа, вью на стероидах. Но флаттер должен уметь работать с фрагментами все равно.
https://stackoverflow.com/questions/65207626/hosting-native-android-and-ios-views-in-your-flutter-app-with-platform-views
спасибо, но там даже меньше, чем в оф доке. Это я читал уже. Мне нужно вью вернуть... в этом проблема @Override public PlatformView create(@NonNull Context context, int id, @Nullable Object args) { final Map<String, Object> creationParams = (Map<String, Object>) args; return new NativeView(context, id, creationParams); }
View != Activity != Fragment
ок. в этом направлении и пытаюсь копать... Но из слов, что активити ни в какой контейнер не встраивается, понимаю так, что и в фрагмент его не "превратить"... ТО есть, моя специфическая задача по обозначенному пути не имеет решения... Нужно искать другие пути
это я в курсе. Но вдруг есть "магическая" :) функция типа Activity.getAsView
Возможный вариант - это мощное native custom view. Вот тогда оно будет View и его можно будет использовать во флаттере, если флаттер кроме вью ничего не поддерживает.
Эх, печалька
Погуглю, на всякий случай
Обсуждают сегодня