Как виджеты закрывают клавиатуру во флаттере - PullRequest
0 голосов
/ 19 октября 2018

Я хочу, чтобы виджет перекрывал клавиатуру, как кнопка записи в Telegram.

Я пробовал некоторые способы, но виджет был обрезан клавиатурой.

enter image description here

1 Ответ

0 голосов
/ 19 октября 2018

Если вы строите проект на 100%, я не думаю, что это возможно.В качестве альтернативы вы можете смешать флаттер и iOS для достижения этой цели.

Вот почему я не думаю, что вы можете сделать это только с флаттером:

Чтобы добавить что-то поверх клавиатуры, на стороне iOS вынеобходимо получить доступ к массиву windows и добавить свой пользовательский вид поверх окна last , убедившись, что он находится над самым верхним интерфейсом пользователя (клавиатура):

var customView = UIView(frame: CGRect(x: 0, y: self.view.frame.size.height-300, width: self.view.frame.size.width, height: 300))
customView.backgroundColor = UIColor.redColor()
customView.layer.zPosition = CGFloat(MAXFLOAT)
var windowCount = UIApplication.sharedApplication().windows.count
UIApplication.sharedApplication().windows[windowCount-1].addSubview(customView);

Ваш "100% флаттер" не будет иметь доступа к ресурсам, описанным выше.


Для того, чтобы иметь эту функциональность, я бы хотел, чтобы проект iOS немного координировал ситуацию.

Например:

У вашего пути флаттера должны быть пути и каналы.

Сохраните ваш основной путь для текущей реализации флаттера.

Добавьте новый путь для представления / виджетаэто должно быть поверх клавиатуры.

Со стороны iOS следует координировать действия с двумя экземплярами флаттера по каналам.Проинформируйте сторону iOS о том, когда должен быть отображен / удален вид / виджет (и дополнительные материалы, если необходимо, например, пользователь нажимает на пользовательский новый вид / виджет).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...