我正在使用RecyclerView
来显示list
中的数据。但是RecyclerView
只加载用户可见的行数据。
由于我的list
只有10-12项,我想立刻加载所有这些。如何使用RecyclerView
处理这个问题?
recycler view fragment.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;
}
}
my movie adapter.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>