Fragment is auto scrolling to somewhere else | android studio

Viewed 164

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.. enter image description here

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

0 Answers
Related