Android: Issue ScrollView
-
19-09-2019 - |
Pergunta
Eu tive uma série de problemas com scrollviews. Recentemente eu tentei criar um LinearView qual o conteúdo exceder o tamanho da tela assim que eu criei o novo layout com elemento pai ScrollView e definir a sua largura e altura para valores personalizados (o layout tem que aparecer como diálogo - não preenchendo toda a tela).
Quando o elemento é selecionado a borda vermelha aparece a abraçar o retângulo de predefinidos ScrollView LayoutWidth e LayoutHeight que é OK. Em seguida, colocado no interior do LinearView e definir os valores LayoutWidth e LayoutHeight para fill_parent.
Então, quando eu comecei a adicionar os elementos para o LinearLayout da fronteira (Lile vermelho) envolveu os elementos inseridos, não todo o pai ScrollView.
Assim, quando o conteúdo do LinearLayout (filho de ScrollView) excedeu o tamanho do pai ScrollView o livro não apareceu e os elementos de fundo são simplesmente invisível.
De qualquer forma .., nesse caso, o conteúdo XML foi muito extenso para postar a pergunta aqui e agora estou tendo o mesmo problema com o exemplo mais simples.
A parte seguinte do esquema destina-se a ser um EditText deslocável (no caso da entrada de utilizador excede o tamanho primário do widget). Eu queria definir a altura EditText para 120px, então eu definir o pai ScrollView altura de 120px eo EditText criança fill_parent. Novamente neste caso, o EditText não preenche toda a área ScrollView mas uma única linha:
<ScrollView android:layout_height="120px" android:layout_width="fill_parent">
<EditText android:id="@+id/txtContent" android:layout_height="fill_parent" android:layout_width="fill_parent" android:text="TestContent">
</EditText>
</ScrollView>
Alguém sabe como remodelar o conteúdo acima de modo que o EditText enche o controle pai e no caso da entrada do usuário excede o tamanho do controle das aparece rolagem?
Obrigado!
Editar:
A seguir estão os screenshots do layout
removido ligação ImageShack mortos
removido ligação ImageShack mortos
Solução
Seu EditText deve ter uma altura de wrap_content
. fill_parent
não tem nenhum significado em uma ScrollView
. Se quiser que o EditText
para preencher o seu ScrollView
quando do conteúdo é menor do que o ScrollView
, android:fillViewport="true"
uso na ScrollView
.
Outras dicas
Sim, como Romain disse, necessidades ScrollView seguintes combinação.
- para ScrollView
android:fillViewport="true"
- para criança ScrollView
android:layout_height="wrap_content"