Я смог найти ответ самостоятельно:)
здесь пример кода
void main(){
runApp(MaterialApp(
home: MyWidget(),
));
}
class MyWidget extends StatelessWidget {
Widget build(BuildContext context) {
// retrieve the mediaQuery data
final mediaQueryData = MediaQuery.of(context);
if (mediaQueryData.accessibleNavigation) {
return Text('Screen reader is on');
} else {
return Text('Screen reader is off');
}
}
}
СПАСИБО :))
Обновление: [ 116]
Я проверил код с включенными функциями увеличения и выбора речи ... но на выходе не произошло никаких изменений. Как это происходит от свойства availableNavigation [Window.AccessibilityFeatures] ,. Это приводит к тому, что существует работающая служба доступности, которая меняет модель взаимодействия устройства. Я думаю, что это только для чтения с экрана.
Я знаю, что этот вопрос довольно стар, но для любого ищущего что-то подобное для Строкового представления форматирование на Java или Python у меня есть эти вспомогательные методы:
String.format = (...args) => {
if( args.length == 0 ){
throw new Error("String format error: You must provide at least one argument");
}
const delimiter = "@LIMIT*";
const format = String(args.shift(1,0)).replace(/(%[0-9]{0,}[sd])/g, delimiter+"$1"+delimiter).split(delimiter); // First element is the format
if( [...format].filter(el=>el.indexOf("%")>-1).length != args.length ){
throw new Error("String format error: Arguments must match pattern");
}
if( format.length == 1 && args.length == 0 ){
return String(format);
}
let formattedString = "";
// patterns
const decimalPattern = /%[0-9]{0,}d/;
const stringPattern = /%s/;
if( format.length == 0 ){
throw new Error("String format error: Invalid format");
}
let value = null;
let indexOfParam = 0;
let currPattern = null;
while( args.length > 0 ) {
currPattern = format[indexOfParam];
indexOfParam++;
if( currPattern.indexOf("%")<0 ){
formattedString+=currPattern;
continue;
}
value = args.shift(0,1);
if( decimalPattern.test(currPattern) ){
let numberLength = parseInt(currPattern.replace(/[^0-9]/g,''));
if( isNaN(numberLength) ){
numberLength = 0;
}
formattedString+=numberToLength(value, numberLength);
} else if( stringPattern.test(currPattern) ) {
if( typeof value === 'object' && value.toSource ){
formattedString+=String(value.toSource());
} else {
formattedString+=String(value);
}
} else {
throw new Error("String format error: Unrecognized pattern:"+currPattern);
}
}
return formattedString;
}
const numberToLength = (number, length) => {
length = parseInt(length);
number = String(number);
if( isNaN(length) || isNaN(parseInt(number)) ){
throw new Error("Invalid number passed");
}
while( number.length < length ) {
number = "0" + number;
}
return number;
}
Я не думаю, что в языке JavaScript есть что-то «встроенное» для этого. Вот простая функция, которая делает это:
function FormatNumberLength(num, length) {
var r = "" + num;
while (r.length < length) {
r = "0" + r;
}
return r;
}
FormatNumberLength(10000, 5) outputs '10000'
FormatNumberLength(1000, 5) outputs '01000'
FormatNumberLength(100, 5) outputs '00100'
FormatNumberLength(10, 5) outputs '00010'
A funny (but interesting) way to prefix numbers with zeros:
function FormatInteger(num, length) {
return (num / Math.pow(10, length)).toFixed(length).substr(2);
}
Это может помочь:
String.prototype.padLeft = function (length, character) {
return new Array(length - this.length + 1).join(character || '0') + this;
}
var num = '12';
alert(num.padLeft(4, '0'));
Как насчет чего-то вроде этого:
function prefixZeros(number, maxDigits)
{
var length = maxDigits - number.toString().length;
if(length <= 0)
return number;
var leadingZeros = new Array(length + 1);
return leadingZeros.join('0') + number.toString();
}
//Call it like prefixZeros(100, 5); //Alerts 00100
Вы можете сойти с ума от таких методов:
function PadDigits(input, totalDigits)
{
var result = input;
if (totalDigits > input.length)
{
for (i=0; i < (totalDigits - input.length); i++)
{
result = '0' + result;
}
}
return result;
}
Но это не облегчит жизнь. В C # есть такие методы, как PadLeft и PadRight в классе String, к сожалению, Javascript не имеет встроенной функции