Created
October 16, 2017 17:23
-
-
Save nutchy/99d4d53a518dae38cacd2d12f2cc1bcd to your computer and use it in GitHub Desktop.
[MyLazyInstagram] - MainActivity.java - 2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public class LazyInstagramAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { | |
| private Context context; | |
| private List<Layout> layouts; | |
| private UserProfile userProfile; | |
| @Override | |
| public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | |
| LayoutInflater inflater = LayoutInflater.from(context); | |
| switch (viewType){ | |
| case Layout.TYPE_USER_DETAIL: | |
| View vUserDetail = inflater.inflate(R.layout.rc_user_detail, parent, false); | |
| return new UserDetailViewHolder(vUserDetail); | |
| case Layout.TYPE_POST_ITEM: | |
| View vPost = inflater.inflate(R.layout.rc_post_item, parent, false); | |
| return new PostsViewHolder(vPost); | |
| } | |
| return null; | |
| } | |
| @Override | |
| public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { | |
| if (holder.getItemViewType() == Layout.TYPE_USER_DETAIL){ | |
| viewUserDetail ((UserDetailViewHolder) holder); | |
| } else if (holder.getItemViewType() == Layout.TYPE_POST_ITEM){ | |
| viewPosts((PostsViewHolder) holder); | |
| } | |
| } | |
| private void viewUserDetail(UserDetailViewHolder holder){ | |
| UserDetailAdapter userDetailAdapter = new UserDetailAdapter(context, userProfile); | |
| holder.recyclerView.setLayoutManager(new LinearLayoutManager(context)); | |
| holder.recyclerView.setAdapter(userDetailAdapter); | |
| } | |
| private void viewPosts(PostsViewHolder holder){ | |
| PostAdapter postAdapter = new PostAdapter(context, userProfile.getPosts()); | |
| holder.recyclerView.setLayoutManager(new GridLayoutManager(context, 3)); | |
| holder.recyclerView.setAdapter(postAdapter); | |
| } | |
| @Override | |
| public int getItemCount() { | |
| return layouts.size(); | |
| } | |
| @Override | |
| public int getItemViewType(int position) { | |
| return layouts.get(position).getType(); | |
| } | |
| public class PostsViewHolder extends RecyclerView.ViewHolder { | |
| RecyclerView recyclerView; | |
| // .. | |
| } | |
| public class UserDetailViewHolder extends RecyclerView.ViewHolder { | |
| RecyclerView recyclerView; | |
| // .. | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment