Единственный способ, которым я смог обойти это, это установить андроид моей активности: windowSoftInputMode = "AdjustResize", а затем внедрить пользовательский «вид детектора» в макет для обработки изменения размера контейнера и распространить его как пользовательское событие. (через прослушиватель) для включения / выключения программной клавиатуры.
В следующем посте описан подход к его реализации: EditText не вызывает изменения при нажатии кнопки назад
Параметр -h также используется для печати в stderr, потому что он не является частью вывода вашей программы, т.е. вывод не создается с помощью ваш скрипт Python, но сам интерпретатор Python.
Что касается того, почему они изменили -h на использование stdout? Попробуйте ввести python -h
, установив в окне терминала стандартные 24 строки. Прокручивается за пределы экрана.
Сейчас большинство людей отреагируют, попробовав python -h | less
, но это работает только в том случае, если вы отправите вывод -h в stdout вместо stderr. Таким образом, была веская причина для перехода -h к stdout, но нет веской причины для изменения -V.
-h также используется для печати в stderr, как вы видите здесь из main.c
usage(int exitcode, char* program)
{
fprintf(stderr, usage_line, program);
fprintf(stderr, usage_top);
fprintf(stderr, usage_mid);
fprintf(stderr, usage_bot, DELIM, DELIM, PYTHONHOMEHELP);
exit(exitcode);
/*NOTREACHED*/
}
...
if (help)
usage(0, argv[0]);
if (version) {
fprintf(stderr, "Python %s\n", PY_VERSION);
exit(0);
Текущий main.c изменил способ определения использования
usage(int exitcode, char* program)
{
FILE *f = exitcode ? stderr : stdout;
fprintf(f, usage_line, program);
if (exitcode)
fprintf(f, "Try `python -h' for more information.\n");
else {
fputs(usage_1, f);
fputs(usage_2, f);
fputs(usage_3, f);
fprintf(f, usage_4, DELIM);
fprintf(f, usage_5, DELIM, PYTHONHOMEHELP);
}
Таким образом, используется стандартный вывод для -h и stderr для -Q.
Я не вижу никаких доказательств того, что хорошая причина одна из других. Возможно, сейчас его нельзя изменить без нарушения обратной совместимости
Если вам нужны иерархические запросы к базам данных, которые не поддерживают факторизацию рекурсивных подзапросов (см. ответ APC ), одна очень низкотехнологичная альтернатива - закодировать иерархию в отдельный ключ. Конечно, это будет работать только в том случае, если вы сможете контролировать процесс обновления таблицы и переписать ключ после родительских обновлений.
Например:
FLAT_HIER_ID NODE_ID PARENT_NODE_ID
~N1 N1
~N1~N2 N2 N1
~N1~N2~N3 N3 N2
~N1~N2~N4 N4 N2
Не очень элегантно, но дает вам маршрут для запроса.
Другой (возможно, лучше) вариант - использовать метод « Модель вложенного набора ». Это метод, используемый в Fogbugz для обработки запросов в подкадрах в MSSQL, MySQL и MS Access.
Модель объяснена по адресу:
http://www.developersdex.com/gurus/articles/112.asp
Использование метода в Fogbugz описано по адресу:
Вероятно, без уважительной причины, некоторые поиски обнаружили патч , добавляющий параметры, но я могу найти любые ссылки на то, почему разные потоки используются в обсуждении патч.