In this tutorial, we will learn ScrollView and Horizontal ScrollView in android.
In Android, ScrollView is a view group used to create a vertical scroll view. The scroll view contains only a single direct child. To place multiple views in a scroll view, we need to make a group of views (such as LinearLayout) as a direct child, and then define multiple views in it.
Note: In Android, ScrollView is used by default to scroll items in the vertical direction. If you want to scroll items horizontally, you need to implement a horizontal scrollView.
vertical ScrollView code -By default
<ScrollView android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> </ScrollView>
Contents
What is Horizontal ScrollView?
The horizontal scroll view provided by the android.widget.HorizontalScrollView class. Used to scroll the subviews horizontally.
<HorizontalScrollView android:id="@+id/horizontalScrollView" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> </HorizontalScrollView>
Vertical ScrollView Example:
- A vertical LinearLayout has numerous child components in this example. As can be seen, it requires a space with sufficient height. However, because the screen size is limited, it is necessary to use a ScrollView.
File: activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <ScrollView android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:layout_width="match_parent" android:layout_height="300dp" android:src="@drawable/ic_launcher_background" /> <ImageView android:layout_width="match_parent" android:layout_height="300dp" android:src="@drawable/ic_launcher_foreground" /> <ImageView android:layout_width="match_parent" android:layout_height="300dp" android:src="@drawable/ic_launcher_background" /> <ImageView android:layout_width="match_parent" android:layout_height="300dp" android:src="@drawable/ic_launcher_foreground" /> <ImageView android:layout_width="match_parent" android:layout_height="300dp" android:src="@drawable/ic_launcher_background" /> </LinearLayout> </ScrollView> </androidx.constraintlayout.widget.ConstraintLayout>
File: Mainactivity.kt
package com.sagar.scrollviewandhorizontalscrollview import androidx.appcompat.app.AppCompatActivity import android.os.Bundle class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } }
Horizontal ScrollView Example:
Preview
File: activity_main.xml
–> In activity_main.xml add horizontalScrollView inside constraintlayout and linear layout in horizontalScrollView and after that add ImageViews in a linear layout.
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <HorizontalScrollView android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="210dp" android:orientation="horizontal"> <ImageView android:layout_width="match_parent" android:layout_height="300dp" android:src="@drawable/ic_launcher_background" /> <ImageView android:layout_width="match_parent" android:layout_height="300dp" android:src="@drawable/ic_launcher_foreground" /> <ImageView android:layout_width="match_parent" android:layout_height="300dp" android:src="@drawable/ic_launcher_background" /> <ImageView android:layout_width="match_parent" android:layout_height="300dp" android:src="@drawable/ic_launcher_foreground" /> <ImageView android:layout_width="match_parent" android:layout_height="300dp" android:src="@drawable/ic_launcher_background" /> </LinearLayout> </HorizontalScrollView> </androidx.constraintlayout.widget.ConstraintLayout>
File: MainActivity.kt
–> In MainActivity.kt file we have done nothing so keep it as it is.
package com.sagar.scrollviewandhorizontalscrollview import androidx.appcompat.app.AppCompatActivity import android.os.Bundle class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } }
- We hope that this guide will assist you in quickly creating a simple Scrollview Android app. If you have any problems, please post them in the comments section and we will gladly assist you.
Pingback: How to create Nested ScrollView in Android - Developers Dome