Share via


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. Bidi Wrapping 當某個語言中的文字混合成另一個相反方向語言的檔時,例如,當英文商務名稱內嵌在某些希伯來文文字時,插入的字串及其周圍的文字,除非插入的字串明確與「包裝函式」 中的周圍文字分開,否則可能會不正確顯示:

- 宣告其方向性,以便正確顯示字串。 這可以在 Unicode bidi 格式化程式碼中完成 #unicodeWrap ,方法是和類似的方法。

- 隔離字串的方向性,因此不會不小心影響周圍的內容。 目前,除了上述方向性宣告之外,只能使用與內容 (LRM 或 RLM) 相同方向的不可見 Unicode 字元來完成,因此「重設」內容的方向性。 可能需要在字串的兩端完成「重設」。 如果沒有在字串之後「重設」,即使以空格和標點符號) 等中性內容分隔,字串仍會「貼上」數位或以邏輯方式分隔的相反方向 (文字, 在字串之前若沒有 「重設」,就可能發生相同的情況,但只會使用更相反方向的文字,而不是數位。 其中一種方法是「重設」每個字串之後的方向,理論上,如果上述相反方向文字本身是 bidi 包裝的,則之後的「重設」會防止黏附。 (只有在每個字串之前執行「重設」一定無法運作,因為我們不想要求 bidi 包裝數位,而且 bidi 包裝的相反方向字串可能後面接著數位。) 仍然安全的原則是在每一個字串的兩端執行「重設」,因為 RTL 訊息翻譯通常包含未轉譯的拉丁腳本品牌名稱和技術詞彙。 和其中一個可以後面接著 bidi 包裝的插入值。 另一方面,當訊息有這類訊息時,最好是在郵件翻譯本身手動執行「重設」,因為訊息的相反方向文字後面可能會接著插入的數位,我們仍然不會自動換行。 因此,只有在字串是目前的預設值之後,才會「重設」。 除了「重設」之外,HTML、CSS 和 Unicode 標準的最近新增專案允許隔離成為方向性宣告的一部分。 這種隔離形式比「重設」更好,因為它需要較少的空間、不需要知道內容方向性、具有比「重設」更好的效果,並保護字串的兩端。 不過,我們尚未允許使用它,因為必要的平臺尚未支援它。

提供這些包裝服務是 bidi 格式器的基本用途。

2.方向性估計 如何知道即將插入周圍文字的字串是否具有相同方向性? 在許多情況下,其中一個知道撰寫程式碼執行插入時,這必須是這種情況,例如,將當地語系化的訊息插入當地語系化頁面時。 在這種情況下,完全不需要牽涉到 bidi 格式器。 在某些其他情況下,它不需要與內容相同,但是常數 (例如 URL 一律是 LTR) 或已知。 在其餘情況下,例如,當使用者輸入字串或來自資料庫時,字串的語言 (,因此其方向性) 未知,而且必須在執行時間估計。 bidi 格式器可以使用預設的第一個強式估計演算法自動執行這項操作。 它也可以設定為使用自訂方向性估計物件。

android.text.BidiFormatter JAVA 檔。

此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。

屬性

Class

傳回這個 Object 的執行時間類別。

(繼承來源 Object)
Handle

基礎 Android 實例的控制碼。

(繼承來源 Object)
Instance

用於建立預設地區設定方向之 BidiFormatter 實例的 Factory。

IsRtlContext
JniIdentityHashCode

公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。

(繼承來源 Object)
JniPeerMembers

公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。

PeerReference

公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。

(繼承來源 Object)
StereoReset
ThresholdClass

此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。

(繼承來源 Object)
ThresholdType

此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。

(繼承來源 Object)

方法

Clone()

建立並傳回這個 物件的複本。

(繼承來源 Object)
Dispose()

公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。

(繼承來源 Object)
Dispose(Boolean)

公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。

(繼承來源 Object)
Equals(Object)

指出其他物件是否「等於」這個物件。

(繼承來源 Object)
GetHashCode()

傳回此物件的雜湊碼值。

(繼承來源 Object)
GetInstance(Boolean)

在內容方向性下建立 BidiFormatter 實例的 Factory。

GetInstance(Locale)

在內容地區設定下建立 BidiFormatter 實例的 Factory。

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()

讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > 。 ><

(繼承來源 Object)
Wait(Int64)

讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <>

(繼承來源 Object)
Wait(Int64, Int32)

讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <>

(繼承來源 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)

公用程式類別,用於格式化文字,以在可能相反的方向性內容中顯示,而不需加碼。

適用於