Решение с FocusScope не работает для меня. Я нашел другое:
import 'package:flutter/services.dart';
SystemChannels.textInput.invokeMethod('TextInput.hide');
Он решил мою проблему.
Это легко найти, посмотрев документы, так как, к счастью, поведение хорошо определено на Java. Из Math
он говорит
Когда этот метод сначала вызывается, он создает один новый генератор псевдослучайных чисел, точно так же, как если бы выражение
blockquote>
new java.util.Random()
К сожалению, он явно не говорит, какой метод на
Random
он вызывает. Однако, поскольку его возвращаемое значение находится в том же диапазоне, что иRandom.nextDouble
, к которому он также ссылается в разделе «См. Также», должно быть безопасным предположением, что это то, что используется.Глядя в
Random.nextDouble
вы можете видетьblockquote>return (((long)next(26) << 27) + next(27)) / (double)(1L << 53);
, атомистически обновляя семя до
(seed * 0x5DEECE66DL + 0xBL) & ((1L << 48) - 1)
и возвращая
blockquote>
(int)(seed >>> (48 - bits))
Таким образом, конечное случайное значение рассчитывается как
seed = (seed * 0x5DEECE66DL + 0xBL) & ((1L << 48) - 1) next1 = (int)(seed >>> (48 - 26)) seed = (seed * 0x5DEECE66DL + 0xBL) & ((1L << 48) - 1) next2 = (int)(seed >>> (48 - 27)) randomValue = (((long)next1 << 27) + next2) / (double)(1L << 53);
Где
семя генератора случайных чисел [инициализируется как] значение, очень вероятно отличающееся от любой другой вызов этого конструктора.
blockquote>. Рассматривая это, должно быть довольно ясно что число не является, по сути, «случайным», как это понимают многие люди. Это вполне предсказуемая математическая модель, известная как псевдослучайная , которая достаточно случайна для многих целей. Однако, возможно, стоит посмотреть на
SecureRandom
(что приводит к непредсказуемым, криптографически сильным случайным значениям), в зависимости от того, насколько непредсказуемым вы хотите получить результаты.
Правда о случайных числах состоит в том, что они не являются случайными. они просто вычисляются с текущим временем в mili / nano (или даже меньше) -секундах ... потому что время всегда меняется и никогда не повторяется, значение не может быть одинаковым значением для «той же причины», что то, что делает случайным номер случайного числа ...
Выйти @FranciscoSpaeth answer:
Вы можете проследить его в объявлениях класса Java. Это из Math.class:
public static double random() {
return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();
}
Это легко сделать в Eclipse. Focus & amp; F3.