Tenho muitos itens na tela e preciso usar a barra de rolagem para que o usuário possa rolar para baixo. No entanto, o pergaminho não está visível ou não está funcionando. Como é possível adicionar uma barra de rolagem a LinearLayout
?
Tenho muitos itens na tela e preciso usar a barra de rolagem para que o usuário possa rolar para baixo. No entanto, o pergaminho não está visível ou não está funcionando. Como é possível adicionar uma barra de rolagem a LinearLayout
?
Respostas:
Embrulhe o layout linear com um <ScrollView>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- Content here -->
</LinearLayout>
</ScrollView>
</LinearLayout>
Nota: fill_parent foi descontinuado e renomeado para match_parent no nível 8 da API e superior.
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/container"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</LinearLayout>
</ScrollView>
Isso pode ser feito usando a tag <ScrollView>
. Para o ScrollView , é preciso lembrar que o ScrollView deve ter um único filho .
Se você quiser que seu layout completo seja rolável, adicione <ScrollView>
-o na parte superior. Veja o exemplo abaixo.
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- Content here -->
</LinearLayout>
</ScrollView>
Mas se você quiser que parte de seu layout seja rolável, adicione- <ScrollView>
a nessa parte. Veja o exemplo abaixo.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="400dp">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- Content here -->
</LinearLayout>
</ScrollView>
</LinearLayout>
Aqui está como eu fiz isso por tentativa e erro.
ScrollView - (the outer wrapper).
LinearLayout (child-1).
LinearLayout (child-1a).
LinearLayout (child-1b).
Como o ScrollView pode ter apenas um filho, esse filho é um layout linear. Todos os outros tipos de layout ocorrem no primeiro layout linear. Ainda não tentei incluir um layout relativo, mas eles me enlouquecem, então esperarei até minha sanidade voltar.
você precisa usar o seguinte atributo e incluí-lo no layout linear
<LinearLayout ...>
<scrollView ...>
</scrollView>
</LinearLayout>
Você precisa colocar o ScrollView como o primeiro filho do arquivo Layout e agora colocar seu layout linear dentro dele. Agora, o Android decidirá, com base no conteúdo e no tamanho do dispositivo disponível, se deseja exibir uma rolagem ou não.
Verifique se o linearlayout não tem irmãos, porque o ScrollView não pode ter mais de um filho.
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<---------Content Here --------------->
</LinearLayout>
</ScrollView>
</LinearLayout>
Você pode adicionar um atributo no linearLayout: android:scrollbars="vertical"