java - 如何将 StickyHeaders 添加到 recyclerView?
问题描述
我目前正在以初学者的身份学习 Android Studio,所以如果我问一个对专业人士来说似乎很容易的问题,请原谅我。将 StickyHeader 添加到 recyclerView 的正确方法是什么?我正在尝试开发一个示例模板,该模板将有大约 25 行,但项目应分组在 (5) 不同的stickyHeaders 下。这就是问题所在。关于如何实现这一点没有明确的指示,有点令人困惑。
目前,总共有 (5) 个与代码相关联的文件,它们是:(1)Adapter.java,(2) Item.java (3)MainActivity.java,(4) activity_main.xml,最后是 (5)item.xml . 我不确定如何完成这个stickyHeader 编码。
(1) 这里是 Adapter.java 文件:
public class ExampleAdapter extends RecyclerView.Adapter<ExampleAdapter.ExampleViewHolder> {
private ArrayList<ExampleItem> mExampleList;
public static class ExampleViewHolder extends RecyclerView.ViewHolder {
public ImageView mImageView;
public TextView mTextView1;
public TextView mTextView2;
public ExampleViewHolder(View itemView) {
super(itemView);
mImageView = itemView.findViewById(R.id.imageView);
mTextView1 = itemView.findViewById(R.id.textView);
mTextView2 = itemView.findViewById(R.id.textView2);
}
}
public ExampleAdapter(ArrayList<ExampleItem> exampleList) {
mExampleList = exampleList;
}
@Override
public ExampleViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.example_item, parent, false);
ExampleViewHolder evh = new ExampleViewHolder(v);
return evh;
}
@Override
public void onBindViewHolder(ExampleViewHolder holder, int position) {
ExampleItem currentItem = mExampleList.get(position);
holder.mImageView.setImageResource(currentItem.getImageResource());
holder.mTextView1.setText(currentItem.getText1());
holder.mTextView2.setText(currentItem.getText2());
}
@Override
public int getItemCount() {
return mExampleList.size();
}
}
(2) 这里是 item.java 文件:
public class ExampleItem {
private int mImageResource;
private String mText1;
private String mText2;
public ExampleItem(int imageResource, String text1, String text2) {
mImageResource = imageResource;
mText1 = text1;
mText2 = text2;
}
public int getImageResource() {
return mImageResource;
}
public String getText1() {
return mText1;
}
public String getText2() {
return mText2;
}
}
(3) 这里是 MainActivity.java 文件:
public class MainActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
private RecyclerView.Adapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList<ExampleItem> exampleList = new ArrayList<>();
exampleList.add(new ExampleItem(R.drawable.ic_android, "Title", "SubTitle"));
exampleList.add(new ExampleItem(R.drawable.ic_android, "Title 1", "SubTitle"));
exampleList.add(new ExampleItem(R.drawable.ic_android, "Title 2", "SubTitle"));
exampleList.add(new ExampleItem(R.drawable.ic_android, "Title 3", "SubTitle"));
exampleList.add(new ExampleItem(R.drawable.ic_android, "Title 4", "SubTitle"));
exampleList.add(new ExampleItem(R.drawable.ic_android, "Title 5", "SubTitle"));
exampleList.add(new ExampleItem(R.drawable.ic_android, "Title 6", "SubTitle"));
exampleList.add(new ExampleItem(R.drawable.ic_android, "Title 7", "SubTitle"));
exampleList.add(new ExampleItem(R.drawable.ic_android, "Title 8", "SubTitle"));
exampleList.add(new ExampleItem(R.drawable.ic_android, "Title 9", "SubTitle"));
exampleList.add(new ExampleItem(R.drawable.ic_android, "Title 10", "SubTitle"));
exampleList.add(new ExampleItem(R.drawable.ic_android, "Title 11", "SubTitle"));
exampleList.add(new ExampleItem(R.drawable.ic_android, "Title 12", "SubTitle"));
mRecyclerView = findViewById(R.id.recyclerView);
mRecyclerView.setHasFixedSize(true);
mLayoutManager = new LinearLayoutManager(this);
mAdapter = new ExampleAdapter(exampleList);
mRecyclerView.setLayoutManager(mLayoutManager);
mRecyclerView.setAdapter(mAdapter);
}
}
我想在几个主题之间有一个stickyHeader,但不知道如何实现stickyHeader 代码。每个人都说这很混乱。
解决方案
推荐阅读
- python-3.x - 安装 itertools 时找不到版本错误
- html - 如何通过使用 innerHTML 添加组件来呈现组件?
- powershell - 如何在模块中的 cmdlet 之间共享数据?
- node.js - 将所有关联代码放入 sequelize 的地方
- r - rbind 列表并恢复名称
- python - 如何在Robot框架中将元素的html表转换为Arraylist元素
- ssl - 在 socks5 套接字上的 Python3 ssl wrap_socket
- javascript - XMLHttpRequest,readyState 问题
- python-3.x - 根据变量的当前出现对行进行分组
- android - android的json对象的while循环或for循环不起作用