Android RecyclerView加載兩種布局的方法
當(dāng)RecyclerView有下拉刷新時(shí),有時(shí)候設(shè)計(jì)圖上,體現(xiàn)出來(lái)的列表有頭部布局,這可以通過(guò)Adapter實(shí)現(xiàn)加載多套布局就可以,這里以加載兩種布局為例說(shuō)明。
先看看Adapter的代碼:
import android.annotation.SuppressLint;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import com.alvin.R;
import java.util.ArrayList;
import java.util.List;
public class MainListAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
private List<Data> list;
private ArrayList<ItemEntity> jdList;
private Context context;
public MainListAdapter(List<Data> list,ArrayList<ItemEntity> jdList, Context context) {
this.list = list;
this.jdList = jdList;
this.context = context;
}
@Override
public int getItemViewType(int position) {
return list.get(position).getShowType();
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
if(viewType==1){
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.layout_header_main_list,parent,false);
return new HeaderHolder(view);
}else{
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_list_main,parent,false);
return new ViewHolderItem(view);
}
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if(holder instanceof HeaderHolder){
final HeaderHolder headerHolder = (HeaderHolder) holder;
//TODO 實(shí)現(xiàn)相關(guān)邏輯
}else if(holder instanceof ViewHolderItem){
}
}
@Override
public int getItemCount() {
return list.size();
}
private class HeaderHolder extends RecyclerView.ViewHolder{
HeaderHolder(View itemView) {
super(itemView);
}
}
private class ViewHolderItem extends RecyclerView.ViewHolder{
ViewHolderItem(View itemView) {
super(itemView);
}
}
}
getItemViewType()這個(gè)返回的是列表當(dāng)前布局類型,在Adapter加載布局時(shí),對(duì)齊進(jìn)行判斷,也就是onBindViewHolder()方法中進(jìn)行相應(yīng)的判斷邏輯實(shí)現(xiàn)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android RecyclerView實(shí)現(xiàn)多種item布局的方法
- Android RecyclerView顯示Item布局不一致解決辦法
- Android RecyclerView加載不同布局簡(jiǎn)單實(shí)現(xiàn)
- Android開(kāi)發(fā)中RecyclerView模仿探探左右滑動(dòng)布局功能
- Android RecyclerView布局就這么簡(jiǎn)單
- Android RecyclerView網(wǎng)格布局示例解析
- Android列表RecyclerView排列布局
- Android RecyclerView多類型布局卡片解決方案
- Android實(shí)現(xiàn)RecyclerView嵌套流式布局的詳細(xì)過(guò)程
相關(guān)文章
Android貝塞爾曲線實(shí)現(xiàn)消息拖拽消失
這篇文章主要為大家詳細(xì)介紹了Android貝塞爾曲線實(shí)現(xiàn)消息拖拽消失,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01
微信小程序 canvas開(kāi)發(fā)實(shí)例及注意事項(xiàng)
這篇文章主要介紹了微信小程序 wxcanvas開(kāi)發(fā)實(shí)例及注意事項(xiàng)的相關(guān)資料,這里對(duì)微信canvas與H5中的canvas做對(duì)比,并說(shuō)明注意事項(xiàng),需要的朋友可以參考下2016-12-12
Android 組件Gallery和GridView示例講解
本文主要講解Android 組件Gallery和GridView,這里詳細(xì)介紹組件Gallery和GridView的知識(shí)要點(diǎn),并附示例代碼和實(shí)現(xiàn)效果圖,有興趣的小伙伴可以參考下2016-08-08
Android高仿京東垂直循環(huán)滾動(dòng)新聞欄
通過(guò)自定義的LinearLayout,并且textView能夠循環(huán)垂直滾動(dòng),而且條目可以點(diǎn)擊,顯示區(qū)域最多顯示2個(gè)條目,并且還有交替的屬性垂直移動(dòng)的動(dòng)畫(huà)效果,通過(guò)線程來(lái)控制滾動(dòng)的實(shí)現(xiàn)2016-03-03

