Eu quero o conteúdo dentro de scrollView como centro.
<ScrollView
android:id="@+id/scroller"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="12dp"
android:paddingBottom="20dp"
android:scrollbarStyle="outsideOverlay"
android:layout_gravity="center" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="check"
android:gravity="center_vertical|center_horizontal"/>
</ScrollView>
Nota: não há android:gravity
atributo para scrollvew.
qualquer sol: -
android
scrollview
Padma Kumar
fonte
fonte
android:windowSoftInputMode="stateHidden|adjustResize"
, mas não rola, me ajude por favorRelativeLayout
visão pesada como raiz. Pode serFrameLayout
eandroid:layout_gravity="center_vertical"
porScrollView
Que tal agora?
fonte
Eu acho que uma solução mais elegante seria usar o
ScrollView
'sandroid:fillViewport
propriedade. AScrollView
é um pouco diferente na forma como trata sua visualização de conteúdo (só pode ter uma), mesmo se você definirmatch_parent
(fill_parent
) comoScrollView
, não dará tanto espaço para sua visualização de conteúdo, em vez disso, o comportamento padrão éScrollView
envolver o conteúdo, independentemente do que você especificar para essa exibição. O queandroid:fillViewport
faz é dizer aoScrollView
para esticar seu conteúdo para preencher a janela de visualização ( http://developer.android.com/reference/android/widget/ScrollView.html#attr_android:fillViewport ). Portanto, neste caso, seuLinearLayout
seria esticado para coincidir com a janela de visualização e se a altura ficar atrás da janela de visualização, então será rolável, o que é exatamente o que você deseja!A resposta aceita não funcionará corretamente quando o conteúdo se estender além de
ScrollView
porque ainda centralizará a visualização do conteúdo primeiro, fazendo com que corte uma parte da visualização, eScrollView
centralizado em outro layout funciona, mas não parece certo, além do Acho que também resultará em um erro de lint (pai inútil ou algo parecido).Experimente algo assim:
Apenas lembre-se de que o motivo pelo qual ele está sendo centralizado agora é por causa do
android:gravity
no,LinearLayout
já que oScrollView
esticará,LinearLayout
então tenha isso em mente dependendo do que você adicionar ao layout.Outra boa leitura,
ScrollView
embora não sobre centralização, mas sobre,fillViewport
é http://www.curious-creature.org/2010/08/15/scrollviews-handy-trick/fonte
Use este atributo em ScrollView
Exemplo
fonte
Para @Patrick_Boss - o que impediu o corte do conteúdo em meu aplicativo foi alterar gravity e layout_gravity para center_horizontal para o LinearLayout.
Funcionou para mim ... mas não tenho certeza se funcionará para você.
Modificação da resposta de @ Ghost -
fonte
Uma coisa a se considerar é o que NÃO definir . Certifique-se de que seus controles filho, especialmente os
EditText
controles, não tenham aRequestFocus
propriedade definida.Esta pode ser uma das últimas propriedades interpretadas no layout e substituirá as configurações de gravidade em seus pais (
layout
ouScrollView
).fonte
usando a visualização de rolagem dentro do ConstraintLayout. Funcionou para mim
A altura da visualização de rolagem deve ser wrap_content
fonte