Bidi.GetVisualRun(Int32) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtenha um BidiRun objeto de acordo com seu índice.
[Android.Runtime.Register("getVisualRun", "(I)Landroid/icu/text/BidiRun;", "GetGetVisualRun_IHandler", ApiSince=29)]
public virtual Android.Icu.Text.BidiRun? GetVisualRun(int runIndex);
[<Android.Runtime.Register("getVisualRun", "(I)Landroid/icu/text/BidiRun;", "GetGetVisualRun_IHandler", ApiSince=29)>]
abstract member GetVisualRun : int -> Android.Icu.Text.BidiRun
override this.GetVisualRun : int -> Android.Icu.Text.BidiRun
Parâmetros
- runIndex
- Int32
é o número da execução na ordem visual, no intervalo [0..countRuns()-1].
Retornos
um objeto BidiRun que contém os detalhes da execução. A direcionalidade da execução é LTR==0 ou RTL==1, nunca MIXED.
- Atributos
Comentários
Obtenha um BidiRun objeto de acordo com seu índice. Os métodos BidiRun podem ser usados para recuperar o início lógico, o comprimento e o nível da execução, que podem ser até mesmo para uma execução LTR ou ímpar para uma execução RTL. Em uma execução RTL, o caractere no início lógico está visualmente à direita da execução exibida. O comprimento é o número de caracteres na execução.
countRuns() normalmente é chamado antes que as execuções sejam recuperadas.
Exemplo:
Bidi bidi = new Bidi();
String text = "abc 123 DEFG xyz";
bidi.setPara(text, Bidi.RTL, null);
int i, count=bidi.countRuns(), logicalStart, visualIndex=0, length;
BidiRun run;
for (i = 0; i < count; ++i) {
run = bidi.getVisualRun(i);
logicalStart = run.getStart();
length = run.getLength();
if (Bidi.LTR == run.getEmbeddingLevel()) {
do { // LTR
show_char(text.charAt(logicalStart++), visualIndex++);
} while (--length > 0);
} else {
logicalStart += length; // logicalLimit
do { // RTL
show_char(text.charAt(--logicalStart), visualIndex++);
} while (--length > 0);
}
}
Observe que, na direita para a esquerda, um código como esse coloca os segundos substitutos antes dos primeiros (o que geralmente é uma má ideia) e combinando caracteres antes dos caracteres base.
O uso de {@link #writeReordered}, opcionalmente com a opção {@link #KEEP_BASE_COMBINING} , pode ser considerado para evitar esses problemas.
Java documentação para android.icu.text.Bidi.getVisualRun(int).
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.