Pergunta

Eu tenho um controle de lista que usa um item de item personalizado e um itemEditor personalizado. O ItemRenderer/Editor são controles de textarea com pelo menos 3 linhas de texto cada.

A natureza de rolagem padrão de um controle de lista é por item, e não por um número de pixels, a maneira como um Vbox Scrolls.

Quero que meu controle de lista tenha mais uma aparência de processador de palavras, onde a rolagem para baixo rolará uma linha de texto por vez. Como cada item da lista contém pelo menos três linhas de texto, rolar para baixo pula os três e posiciona o próximo item da lista na parte superior do controle da lista.

Algum sugestão?

Eu estava tentando descobrir como escrever um Vbox personalizado que poderia agir como uma lista, mas sou novo no Flex - e só estou programando há um ano. .... não tenho certeza por onde começar.

Obrigado!

Foi útil?

Solução 2

Não recebi uma resposta ao meu comentário, sobre o uso de um componente Flex 4 em nosso aplicativo.

No entanto, deduzi que não é possível ter uma lista de rolagem suave com altura de linha variável, se meus requisitos forem uma grande lista com muitos controles.

Como o controle da lista não instancia todos os seus itens de uma só vez, ele não pode determinar os valores de rolagem mínimo e máximo necessários com base na altura total de todos os controles. Ele só pode determinar esses valores a partir do número de controles que ele contém. Desapontamento :-(

Outras dicas

Use o Spark List Control do Flex 4 (a versão beta está disponível). Sua interface "roller" é muito mais flexível.

Eu tive um problema semelhante usando um renderizador de item com texto e um polegar. Resolveu -o fazendo com que a lista renderize todos os seus itens antes da exibição, envolvendo a lista dentro de um roller e um grupo e desligando a rolagem dentro da própria lista. Certifique -se de não especificar a altura da lista - deixe o Flex fazer isso.

Meu código: (por algum motivo, tive que anexar o rolador em um grupo para que ele funcione)

<s:Group width="100%"  height="100%">
  <s:Scroller width="100%" height="100%" horizontalScrollPolicy="off" id="listScroll">
    <s:Group width="100%" height="100%">
      <s:List dataProvider="{arrData}" itemRenderer="renderers.ListingItemRenderer"
        verticalScrollPolicy="off" click="listingSelected()" width="100%" />
    </s:Group>
  </s:Scroller>
</s:Group>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top