189 8069 5689

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 mDetailData=new ArrayList<>();

    //格式化时间

    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 tracks) {

        //清除原来的数据

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://cdxtjz.cn/article/scdepi.html

其他资讯