Я использую RecyclerView
для отображения данных, представленных в list
.Но RecyclerView
загружает только те строки данных, которые видны пользователю.
Поскольку у моего list
есть только 10-12 элементов, и я хочу загрузить их все сразу.Как бороться с этим, используя RecyclerView
?
RecyclerViewFragment.java
public class RecyclerViewFragment extends Fragment {
List<Movie> movieList = new ArrayList<>();
RecyclerView myRecyclerView;
MyMovieAdapter myMovieAdapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.reccycler_view_frament,container,false);
Movie movie = new Movie("ABC","1-1-1");
movieList.add(movie);
movie = new Movie("PLK","4-4-4");
movieList.add(movie);
movie = new Movie("XYZ","2-2-2");
movieList.add(movie);
movie = new Movie("ZMMD","3-3-3");
movieList.add(movie);
movie = new Movie("ABC","1-1-1");
movieList.add(movie);
movie = new Movie("PLK","4-4-4");
movieList.add(movie);
movie = new Movie("XYZ","2-2-2");
movieList.add(movie);
movie = new Movie("ZMMD","3-3-3");
movieList.add(movie);
movie = new Movie("ABC","1-1-1");
movieList.add(movie);
movie = new Movie("PLK","4-4-4");
movieList.add(movie);
movie = new Movie("XYZ","2-2-2");
movieList.add(movie);
movie = new Movie("ZMMD","3-3-3");
movieList.add(movie);
movie = new Movie("ABC","1-1-1");
movieList.add(movie);
movie = new Movie("PLK","4-4-4");
movieList.add(movie);
movie = new Movie("XYZ","2-2-2");
movieList.add(movie);
movie = new Movie("ZMMD","3-3-3");
movieList.add(movie);
movie = new Movie("ABC","1-1-1");
movieList.add(movie);
movie = new Movie("PLK","4-4-4");
movieList.add(movie);
movie = new Movie("XYZ","2-2-2");
movieList.add(movie);
movie = new Movie("ZMMD","3-3-3");
movieList.add(movie);
movie = new Movie("ABC","1-1-1");
movieList.add(movie);
movie = new Movie("PLK","4-4-4");
movieList.add(movie);
movie = new Movie("XYZ","2-2-2");
movieList.add(movie);
movie = new Movie("ZMMD","3-3-3");
movieList.add(movie);
movie = new Movie("ABC","1-1-1");
movieList.add(movie);
movie = new Movie("PLK","4-4-4");
movieList.add(movie);
movie = new Movie("XYZ","2-2-2");
movieList.add(movie);
movie = new Movie("ZMMD","3-3-3");
movieList.add(movie);
myRecyclerView = view.findViewById(R.id.recyclerView);
myMovieAdapter = new MyMovieAdapter(movieList);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getContext());
myRecyclerView.setLayoutManager(layoutManager);
myRecyclerView.setItemAnimator(new DefaultItemAnimator());
myRecyclerView.setAdapter(myMovieAdapter);
return view;
}
}
MyMovieAdapter.java
public class MyMovieAdapter extends RecyclerView.Adapter<MyMovieAdapter.MyMoviewHolder> {
List<Movie> movieList;
public MyMovieAdapter(List<Movie> movieList){
this.movieList = movieList;
}
@NonNull
@Override
public MyMoviewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.movie_adapter,viewGroup,false);
return new MyMoviewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyMoviewHolder myMoviewHolder, int i) {
Log.d("MOVIETEST","NAME = "+movieList.get(i).getMovieName());
myMoviewHolder.movieNameTV.setText(movieList.get(i).getMovieName());
myMoviewHolder.movieReleaseDateTV.setText(movieList.get(i).getReleaseDate());
}
@Override
public int getItemCount() {
return movieList.size();
}
public class MyMoviewHolder extends RecyclerView.ViewHolder{
AppCompatTextView movieNameTV, movieReleaseDateTV;
public MyMoviewHolder(@NonNull View itemView) {
super(itemView);
movieNameTV = itemView.findViewById(R.id.name);
movieReleaseDateTV = itemView.findViewById(R.id.release_date);
}
}
}
Movie.java
public class Movie {
private String movieName;
private String releaseDate;
public Movie(String movieName, String releaseDate){
this.movieName = movieName;
this.releaseDate = releaseDate;
}
public String getMovieName() {
return movieName;
}
public void setMovieName(String movieName) {
this.movieName = movieName;
}
public String getReleaseDate() {
return releaseDate;
}
public void setReleaseDate(String releaseDate) {
this.releaseDate = releaseDate;
}
}
movie_adapter.xml
<android.support.v7.widget.CardView
android:elevation="3dp"
android:background="#9372"
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="50dp"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:weightSum="10"
android:layout_gravity="center_vertical"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.AppCompatTextView
android:layout_width="0dp"
android:layout_weight="5"
android:layout_height="wrap_content"
android:id="@+id/name"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:text="ABC"
/>
<android.support.v7.widget.AppCompatTextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/release_date"
android:layout_weight="5"
android:gravity="center_horizontal"
android:layout_gravity="center_horizontal"
android:text="1-1-1"
/>
</LinearLayout>
</android.support.v7.widget.CardView>