We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RecyclerView是我学习的第一个复杂的安卓ViewGroup(容器)。 前面我学习的的View或者ViewGroup更加倾向于单一功能或者基本功能。而RecyclerView的地位WPF中的ListBox有接近,具有把控件二维展开的功能,一下子打开了UI和数据层的空间。同时具有一定虚拟化的特性(元素控件可,循环利用,控件层更少内存的开销损耗)。所以说RecyclerView是安卓学习以来第一个让我觉得激动的控件。
RecyclerView有三大最重要元素
LayoutManager 顾名思义,布局管理就是控制RecyclerView的布局模式的,一共三种, LinearLayoutManager:线性布局一维列表 GridLayoutManager:表格布局,元素二维展开。或者横向对齐或者竖向对齐 StaggeredGridLayoutManager:错列的表格,不追求对齐而追求布局的“填满”
RecyclerView.Adapter<>
Adapter是RecyclerView绝对的灵魂类,非常重要。但是在WPF中实在又找不到对应对象。 该类为泛型,类型参数为ViewHold。 适配器有三大方法 onCreateViewHolder:告诉我怎么我生产ViewHolder(后面详细说) onBindViewHolder:告诉我怎么把ViewHolder和第N个数据结合 getItemCount:告诉我数据有多少
新建一个CustomAdapter类继承Adapter,放一个最简单的String数组作为内部数据存储
public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.ViewHolder> { private String[] mDataSet; public CustomAdapter(String[] dataSet) { mDataSet = dataSet; }
ViewHolder的实现
public static class ViewHolder extends RecyclerView.ViewHolder { public ViewHolder(@NonNull View itemView) { super(itemView); } }
最没营养的实现的躯壳
Adapter三大方法Override
@NonNull @Override public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { // Create a new view, which defines the UI of the list item LayoutInflater inflater = LayoutInflater.from(parent.getContext()); //.inflate(R.layout.text_row_item, parent, false); TextRowItemBinding binding = DataBindingUtil.inflate(inflater,R.layout.text_row_item,parent, false ); return new ViewHolder(binding.getRoot()); } @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { TextRowItemBinding binding = DataBindingUtil.getBinding(holder.itemView); binding.setContent( this.mDataSet[position] ); binding.executePendingBindings(); } @Override public int getItemCount() { return this.mDataSet.length; }
其中inflater,R.layout.text_row_item是Item的布局
最后是Activity部分的实现
public class SearchActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivitySearchBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_search); binding.dataList.setLayoutManager( new LinearLayoutManager( this ) ); CustomAdapter adapter = new CustomAdapter( new String[]{"A","B","C","E","F"} ); binding.dataList.setAdapter( adapter ); } }
一开始看完RecyclerView,是出乎我的预期的
相关问题一度困扰着我。 关于后面的进展,请看我的Android 练手之旅——RecyclerView(二)
recyclerview官网
The text was updated successfully, but these errors were encountered:
No branches or pull requests
引言
RecyclerView是我学习的第一个复杂的安卓ViewGroup(容器)。
前面我学习的的View或者ViewGroup更加倾向于单一功能或者基本功能。而RecyclerView的地位WPF中的ListBox有接近,具有把控件二维展开的功能,一下子打开了UI和数据层的空间。同时具有一定虚拟化的特性(元素控件可,循环利用,控件层更少内存的开销损耗)。所以说RecyclerView是安卓学习以来第一个让我觉得激动的控件。
RecyclerView内容介绍
RecyclerView有三大最重要元素
LayoutManager
顾名思义,布局管理就是控制RecyclerView的布局模式的,一共三种,
LinearLayoutManager:线性布局一维列表
GridLayoutManager:表格布局,元素二维展开。或者横向对齐或者竖向对齐
StaggeredGridLayoutManager:错列的表格,不追求对齐而追求布局的“填满”
RecyclerView.Adapter<>
Adapter是RecyclerView绝对的灵魂类,非常重要。但是在WPF中实在又找不到对应对象。
该类为泛型,类型参数为ViewHold。
适配器有三大方法
onCreateViewHolder:告诉我怎么我生产ViewHolder(后面详细说)
onBindViewHolder:告诉我怎么把ViewHolder和第N个数据结合
getItemCount:告诉我数据有多少
ViewHolder就是每一个Item的容器对象
最原始的用法
新建一个CustomAdapter类继承Adapter,放一个最简单的String数组作为内部数据存储
ViewHolder的实现
最没营养的实现的躯壳
Adapter三大方法Override
其中inflater,R.layout.text_row_item是Item的布局
最后是Activity部分的实现
总结部分
一开始看完RecyclerView,是出乎我的预期的
相关问题一度困扰着我。
关于后面的进展,请看我的Android 练手之旅——RecyclerView(二)
recyclerview官网
The text was updated successfully, but these errors were encountered: