Fragment is auto scrolling to bottom. Not exactly bottom (somewhere else).
But each time I visited this fragment ,fragment will start show at same location..

actually above of this recycler view I have a image. Each time I visit this fragment page ,manually I have to scroll up.
fragment_home.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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=".HomeFragment">
<!-- TODO: Update blank fragment layout -->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/name_board" android:id="@+id/name_board"/>
<RelativeLayout
android:id="@+id/imageLayout"
android:layout_width="match_parent"
android:layout_height="220dp"
android:layout_below="@id/name_board"
android:layout_marginTop="10dp"
android:elevation="20dp">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
app:cardCornerRadius="8dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/someimage">
</ImageView>
</androidx.cardview.widget.CardView>
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:layout_margin="20dp"
android:id="@+id/dashboard"
android:layout_below="@id/imageLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
</androidx.recyclerview.widget.RecyclerView>
</RelativeLayout>
</ScrollView>
HomeFragment.java
package com.example.cansis20;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ViewFlipper;
import java.util.ArrayList;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
*/
public class HomeFragment extends Fragment {
ViewFlipper v_flipper;
RecyclerView recyclerView;
List<String> title;
List<Integer> images;
Adapter adapter;
public HomeFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_home, container, false);
recyclerView = v.findViewById(R.id.dashboard);
title = new ArrayList<>();
images = new ArrayList<>();
String typeofuser = SharedPrefManager.getInstance(this.getContext()).getTypeOfUser();
if(typeofuser.equals("parent")) {
title.add("CIRCULARS");
title.add("ATTENDANCE");
title.add("PROGRESS REPORT");
title.add("PROFILE");
title.add("CHATBOT");
images.add(R.drawable.news);
images.add(R.drawable.attendance2);
images.add(R.drawable.piechart);
images.add(R.drawable.userprofile);
images.add(R.drawable.chatbot);
}else {
title.add("CIRCULARS");
title.add("ATTENDANCE");
title.add("PROGRESS REPORT");
title.add("TIME TABLE");
title.add("CGPA CALCULATOR");
title.add("SGPA CALCULATOR");
title.add("PROFILE");
title.add("ABOUT DEPT");
title.add("E-LEARNING");
title.add("CHATBOT");
title.add("MARKS");
images.add(R.drawable.news);
images.add(R.drawable.attendance2);
images.add(R.drawable.piechart);
images.add(R.drawable.timetable);
images.add(R.drawable.calculator1);
images.add(R.drawable.calculator2);
images.add(R.drawable.userprofile);
images.add(R.drawable.university);
images.add(R.drawable.elearning);
images.add(R.drawable.chatbot);
images.add(R.drawable.marks);
}
adapter = new Adapter(getContext(),title,images);
GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(),2,GridLayoutManager.VERTICAL,false);
recyclerView.setLayoutManager(gridLayoutManager);
recyclerView.setAdapter(adapter);
return v;
}
}
Adapter.java
package com.example.cansis20;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.app.AppCompatDelegate;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentTransaction;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;
public class Adapter extends RecyclerView.Adapter<Adapter.ViewHolder> {
List<String> title;
List<Integer> images;
LayoutInflater inflater;
TimeTableFragment timeTableFragment;
ProfileFragment profileFragment;
NewsFragment newsFragment;
AttendanceFragment attendanceFragment;
ProgressFragment progressFragment;
CalculatorFragment calculatorFragment;
CgpaFragment cgpaFragment;
ProgramOutcomesFragment programOutcomesFragment;
ChatbotFragment chatbotFragment;
MarksFragment marksFragment;
public Adapter(Context ctx, List<String> title, List<Integer> images){
this.title = title;
this.images = images;
this.inflater = LayoutInflater.from(ctx);
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = inflater.inflate(R.layout.custom_dashboard,parent,false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.textView.setText(title.get(position));
holder.imageview.setImageResource(images.get(position));
}
@Override
public int getItemCount() {
return title.size();
}
public class ViewHolder extends RecyclerView.ViewHolder{
TextView textView;
ImageView imageview;
TimeTableFragment timeTableFragment;
public ViewHolder(@NonNull final View itemView) {
super(itemView);
final Intent[] intent = new Intent[1];
textView = itemView.findViewById(R.id.textview_adpater);
imageview = itemView.findViewById(R.id.imageview_adapter);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AppCompatActivity activity = (AppCompatActivity)view.getContext();
String typeofuser = SharedPrefManager.getInstance(activity).getTypeOfUser();
if(typeofuser.equals("parent")) {
switch (getAdapterPosition()) {
case 0:
newsFragment = new NewsFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame_area, newsFragment).addToBackStack(null).commit();
;
break;
case 1:
attendanceFragment = new AttendanceFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame_area, attendanceFragment).addToBackStack(null).commit();
;
break;
case 2:
progressFragment = new ProgressFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame_area, progressFragment).addToBackStack(null).commit();
// AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
// activity.getFragmentManager().beginTransaction();
break;
case 3:
profileFragment = new ProfileFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame_area, profileFragment).addToBackStack(null).commit();
break;
case 4:
chatbotFragment = new ChatbotFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame_area, chatbotFragment).addToBackStack(null).commit();
break;
}
}else {
switch (getAdapterPosition()) {
case 0:
newsFragment = new NewsFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame_area, newsFragment).addToBackStack(null).commit();
;
break;
case 1:
attendanceFragment = new AttendanceFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame_area, attendanceFragment).addToBackStack(null).commit();
;
break;
case 2:
progressFragment = new ProgressFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame_area, progressFragment).addToBackStack(null).commit();
// AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
// activity.getFragmentManager().beginTransaction();
break;
case 3:
timeTableFragment = new TimeTableFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame_area, timeTableFragment).addToBackStack(null).commit();
break;
case 4:
cgpaFragment = new CgpaFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame_area, cgpaFragment).addToBackStack(null).commit();
break;
case 5:
calculatorFragment = new CalculatorFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame_area, calculatorFragment).addToBackStack(null).commit();
break;
case 6:
profileFragment = new ProfileFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame_area, profileFragment).addToBackStack(null).commit();
break;
case 7:
programOutcomesFragment = new ProgramOutcomesFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame_area, programOutcomesFragment).addToBackStack(null).commit();
break;
case 8:
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://digital.canaraengineering.in"));
activity.startActivity(intent);
break;
case 9:
chatbotFragment = new ChatbotFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame_area, chatbotFragment).addToBackStack(null).commit();
break;
case 10:
marksFragment=new MarksFragment();
activity.getSupportFragmentManager().beginTransaction().replace(R.id.frame_area, marksFragment).addToBackStack(null).commit();
break;
default:
Toast.makeText(view.getContext(), "thisis test " + getAdapterPosition(), Toast.LENGTH_SHORT).show();
}
}
}
});
}
}
}
Every fragment in my project having same issue