Recyclerview使用LinearLayoutManager的步骤
郑州app开发使用Recyclerview,用LinearLayoutManager的步骤。
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比友谊网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式友谊网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖友谊地区。费用合理售后完善,十余年实体公司更值得信赖。
下面先介绍步骤:
第一步,设置布局管理器。
第二步,设置适配器。
那么下面介绍使用的java代码。
第一步,设置布局管理器。
LinearLayoutManager layoutManager=new LinearLayoutManager(this);
mDetailList.setLayoutManager(layoutManager);
mDetailList是个什么东西呢?
mDetailList=this.findViewbyId(R.id.album_detail_list);
mDetailList其实是androidx.recyclerview.widget.RecyclerView这个控件。
第二步,设置适配器。
mDetailListAdapter =new DetailListAdapter();
mDetailList.setAdapter(mDetailListAdapter);
mDetailListAdapter是什么呢?
mDetailListAdapter是一个适配器。下面把DetailListAdapter整个适配器给粘贴来。供大家观摩。
package cn.xhhkj.himalaya.adapters;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.ximalaya.ting.android.opensdk.model.track.Track;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import cn.xhhkj.himalaya.R;
public class DetailListAdapter extends RecyclerView.Adapter
private List
//格式化时间
private SimpleDateFormat mUpdateDateFormat=new SimpleDateFormat("yyyy-MM-dd");
private SimpleDateFormat mDurationFormat = new SimpleDateFormat("mm:ss");
@NonNull
@Override
public InnerHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_album_detail,parent,false);
return new InnerHolder(itemView);
}
@Override
public void onbindViewHolder(@NonNull InnerHolder holder, int position) {
//找到控件,设置数据
View itemView=holder.itemView;
//顺序id
TextView orderTv=itemView.findViewbyId(R.id.order_text);
//标题
TextView titleTv=itemView.findViewbyId(R.id.detail_item_title);
//播放次数
TextView playCountTv=itemView.findViewbyId(R.id.detail_item_play_count);
//时长
TextView durationTv=itemView.findViewbyId(R.id.detail_item_duration);
//更新日期
TextView updateDateTv=itemView.findViewbyId(R.id.detail_item_update_time);
//设置数据
Track track=mDetailData.get(position);
orderTv.setText((position + 1) + "");
titleTv.setText(track.getTrackTitle());
playCountTv.setText(track.getplayCount() + "");
int durationMil = track.getDuration() * 1000;
String duration = mDurationFormat.format(durationMil);
durationTv.setText(duration);
String updateTimeText=mUpdateDateFormat.format(track.getUpdatedAt());
updateDateTv.setText(updateTimeText);
}
@Override
public int getItemCount() {
return mDetailData.size();
}
public void setData(List
//清除原来的数据
mDetailData.clear();
//添加新的数据
mDetailData.addAll(tracks);
//更新UI
notifyDataSetChanged();
}
public class InnerHolder extends RecyclerView.ViewHolder {
public InnerHolder(@NonNull View itemView) {
super(itemView);
}
}
}
注意:
public InnerHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_album_detail,parent,false);
return new InnerHolder(itemView);
}
在这个函数中,特别注意View itemView= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_album_detail,parent,false);
这段话别的意思没有,意思是需要有个layout布局代码,以供适配器用。这个适配器就是R.layout.item_album_detail。这里面主要是用线性布局和相对布局来制作的,用来放到Recyclerview。
网站名称:Recyclerview使用LinearLayoutManager的步骤
文章转载:http://myzitong.com/article/scdepi.html