BidiFormatter Класс

Определение

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

[Android.Runtime.Register("android/text/BidiFormatter", DoNotGenerateAcw=true)]
public sealed class BidiFormatter : Java.Lang.Object
[<Android.Runtime.Register("android/text/BidiFormatter", DoNotGenerateAcw=true)>]
type BidiFormatter = class
    inherit Object
Наследование
BidiFormatter
Атрибуты

Комментарии

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания. Направление контекста задается при создании модуля форматирования, а направление текста можно оценить или передать, если он известен.

Для поддержки версий ниже android.os.Build.VERSION_CODES#JELLY_BEAN_MR2можно использовать класс библиотеки поддержки androidx.core.text.BidiFormatter .

Эти API предоставляют следующие функциональные возможности:

1. Биди-упаковка. Если текст на одном языке смешивается в документе на другом языке с противоположной направленностью, например, когда название компании на английском языке внедрено в какой-то ивритский текст, вставленная строка и окружающий ее текст могут отображаться неправильно, если вставленная строка не отделена от окружающего текста в "оболочке", которая:

— объявляет направление, чтобы строка отображалась правильно. Это можно сделать в коде форматирования биди в Юникоде с помощью #unicodeWrap и аналогичных методов.

— изолирует направленность строки, чтобы она не влияла на окружающее содержимое. В настоящее время это можно сделать только с помощью невидимых символов Юникода в том же направлении, что и контекст (LRM или RLM) в дополнение к описанному выше объявлению направления, что позволяет "сбросить" направление в контекст. Возможно, потребуется выполнить сброс на обоих концах строки. Без "сброса" после строки строка будет "придерживаться" числа или логически отделять текст в противоположном направлении, который следует за ним в строке (даже если он отделен нейтральным содержимым, таким как пробелы и знаки препинания). Без "сброса" перед строкой то же самое может произойти и там, но только с более противоположным текстом, а не числом. Один из подходов заключается в том, чтобы "сбрасывать" направление только после каждой строки, согласно теории, что если предыдущий текст противоположного направления сам является биди-оболочкой, "сброс" после него будет препятствовать прилипаю. (Выполнение сброса только перед каждой строкой определенно не работает, так как мы не хотим требовать числа в виде биди-упаковки, а за строкой в обратном направлении может следовать число.) Тем не менее, самая безопасная политика заключается в выполнении "сброса" на обоих концах каждой строки, так как преобразования сообщений RTL часто содержат непереводимые фирменные названия латинского письма и технические термины, а за одним из них может следовать вставленное значение bidi-wrapped. С другой стороны, при таком сообщении лучше выполнить сброс вручную в самом переводе сообщения, так как за текстом в противоположном направлении сообщения может следовать вставленное число, которое мы не будем переносить в любом случае. Таким образом, "сброс" только после строки является текущим значением по умолчанию. В качестве альтернативы "сбросу" последние дополнения к стандартам HTML, CSS и Юникода позволяют изоляции быть частью объявления направления. Такая форма изоляции лучше, чем "сброс", так как она занимает меньше места, не требует знания направленности контекста, имеет более мягкий эффект, чем "сброс", и защищает оба конца строки. Однако мы пока не разрешаем использовать его, так как необходимые платформы пока не поддерживают его.

Предоставление этих служб упаковки является основной целью форматировщика bidi.

2. Оценка направленности Как узнать, имеет ли строка, которая будет вставлена в окружающий текст, одинаковой? Во многих случаях известно, что это должно происходить при написании кода, выполняющего вставку, например при вставке локализованного сообщения на локализованную страницу. В таких случаях нет необходимости привлекать биди-форматировщик вообще. В некоторых других случаях он не должен совпадать с контекстом, но является либо константой (например, URL-адрес всегда является LTR) или иным образом известен. В остальных случаях, например, когда строка введена пользователем или поступает из базы данных, язык строки (и, следовательно, ее направленность) не известен априорно и должен оцениваться во время выполнения. Модуль форматирования bidi может сделать это автоматически с помощью алгоритма оценки по умолчанию по умолчанию. Его также можно настроить для использования пользовательского объекта оценки направления.

Документация по Java для android.text.BidiFormatter.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.

Свойства

Class

Возвращает класс среды выполнения данного объекта Object.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
Instance

Фабрика для создания экземпляра BidiFormatter для направления языкового стандарта по умолчанию.

IsRtlContext
JniIdentityHashCode

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

(Унаследовано от Object)
JniPeerMembers

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

PeerReference

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

(Унаследовано от Object)
StereoReset
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

(Унаследовано от Object)
ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

(Унаследовано от Object)

Методы

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Dispose()

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

(Унаследовано от Object)
Dispose(Boolean)

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

(Унаследовано от Object)
Equals(Object)

Указывает, равен ли какой-то другой объект этому объекту.

(Унаследовано от Object)
GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
GetInstance(Boolean)

Фабрика для создания экземпляра BidiFormatter с учетом направленности контекста.

GetInstance(Locale)

Фабрика для создания экземпляра BidiFormatter с учетом языкового стандарта контекста.

IsRtl(ICharSequence)

Работает как #isRtl(String), но принимает символ CharSequence вместо строки.

IsRtl(String)

Оценивает направленность строки с помощью эвристики направления текста по умолчанию.

JavaFinalize()

Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект .

(Унаследовано от Object)
Notify()

Пробуждает один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Пробуждает все потоки, ожидающие на мониторе этого объекта.

(Унаследовано от Object)
SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
ToArray<T>()

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnicodeWrap(String)

Работает так же, как #unicodeWrap(CharSequence, TextDirectionHeuristic, boolean), но использует алгоритм оценки направления по умолчанию модуля форматирования и предполагает, что isolate значение true.

UnicodeWrap(String, Boolean)

Работает как #unicodeWrap(CharSequence, TextDirectionHeuristic, boolean), но использует алгоритм оценки направления по умолчанию модуля форматирования.

UnicodeWrap(String, ITextDirectionHeuristic)

Работает как #unicodeWrap(CharSequence, TextDirectionHeuristic, boolean), но предполагает, что isolate имеет значение true.

UnicodeWrap(String, ITextDirectionHeuristic, Boolean)

Работает как #unicodeWrap(String, TextDirectionHeuristic, boolean), но принимает символ CharSequence вместо строки.

UnicodeWrapFormatted(ICharSequence)

Работает так же, как #unicodeWrap(CharSequence, TextDirectionHeuristic, boolean), но использует алгоритм оценки направления по умолчанию модуля форматирования и предполагает, что isolate значение true.

UnicodeWrapFormatted(ICharSequence, Boolean)

Работает как #unicodeWrap(CharSequence, TextDirectionHeuristic, boolean), но использует алгоритм оценки направления по умолчанию модуля форматирования.

UnicodeWrapFormatted(ICharSequence, ITextDirectionHeuristic)

Работает как #unicodeWrap(CharSequence, TextDirectionHeuristic, boolean), но предполагает, что isolate имеет значение true.

UnicodeWrapFormatted(ICharSequence, ITextDirectionHeuristic, Boolean)

Работает как #unicodeWrap(String, TextDirectionHeuristic, boolean), но принимает символ CharSequence вместо строки.

UnregisterFromRuntime()

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

(Унаследовано от Object)
Wait()

Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.><

(Унаследовано от Object)
Wait(Int64)

Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

IJavaPeerable.Disposed()

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

(Унаследовано от Object)
IJavaPeerable.Finalized()

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

(Унаследовано от Object)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверенного средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

GetJniTypeName(IJavaPeerable)

Служебный класс для форматирования текста для отображения в контексте потенциально противоположной направленности без начертания.

Применяется к