国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

修改recyclerview指定位置背景色

2019-11-09 15:14:00
字體:
供稿:網(wǎng)友

這是一個(gè)瞎寫的小說閱讀器,通過點(diǎn)擊章節(jié)列表(recyclerview)中的選項(xiàng)或者其它方式更新正文文本框內(nèi)容,并且將章節(jié)列表中的相應(yīng)view設(shè)置為紅色背景(R.color.colorAccent)。

holder.chapterName是一個(gè)文本框,內(nèi)容為章節(jié)名稱;

holder.chapterView是holder.chapterName + 一條下劃線,基本上算是同一個(gè)View

因?yàn)楦淖冋鹿?jié)的方式并不只是點(diǎn)擊,所以修改方法不在onClick方法里寫。

在adapter里添加一個(gè)觸發(fā)修改的方法,由外部調(diào)用(getContent方法內(nèi)包含接口方法,即使點(diǎn)擊也一樣),將當(dāng)前章節(jié)名稱(默認(rèn)不重復(fù))和該章節(jié)在章節(jié)列表中的位置傳入后再調(diào)用notifyItemChanged方法,這樣就會觸發(fā)onBindViewHolder。

在onBindViewHolder里判斷recyclerview中的文字內(nèi)容是否和當(dāng)前章節(jié)名稱相同,如果相同就設(shè)置為紅色背景,并將lastSelectedView設(shè)置為這個(gè)view;如果不同就設(shè)置為天藍(lán)色背景。

在每次觸發(fā)onBindViewHolder時(shí),當(dāng)recyclerview中的文字內(nèi)容和當(dāng)前章節(jié)名稱相同,如果lastSelectedView和這個(gè)view不是同一個(gè)view,說明當(dāng)前章節(jié)變了,需要先把lastSelectedView的背景設(shè)置成天藍(lán)色,再將當(dāng)前view設(shè)置為紅色背景,將lastSelectedView設(shè)置為這個(gè)新的view。

ps:在onBindViewHolder里如果根據(jù)position而不是章節(jié)名來設(shè)置的話,會出現(xiàn)這種問題:選中的章節(jié)item會變紅,但是列表上下滑動(dòng)會發(fā)現(xiàn)還有別的章節(jié)item也變紅了。

@Override    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.chapter_item, parent, false);        final ViewHolder holder = new ViewHolder(view);        holder.chapterView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                getContent(holder.getAdapterPosition());                drawerLayout.closeDrawer(GravityCompat.START);            }        });        return holder;    }        public void selectItem(int position, String selectedChapter) {        this.selectedChapter = selectedChapter;        notifyItemChanged(position);    }        PRivate String selectedChapter;    private View lastSelectedView;    @Override    public void onBindViewHolder(ViewHolder holder, int position) {        String chapterName = mNovelInfo.ChapterNameList.get(position);        holder.chapterName.setText(chapterName);        if (chapterName.equals(selectedChapter)) {            if (lastSelectedView != null && lastSelectedView != holder.chapterName) {                lastSelectedView.setBackgroundColor(ContextCompat.getColor(MyUtil.activeActivity, R.color.skyblue));            }            holder.chapterName.setBackgroundColor(ContextCompat.getColor(MyUtil.activeActivity, R.color.colorAccent));            lastSelectedView = holder.chapterName;        } else {            holder.chapterName.setBackgroundColor(ContextCompat.getColor(MyUtil.activeActivity, R.color.skyblue));        }    }


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁都县| 师宗县| 麟游县| 六盘水市| 民乐县| 霍邱县| 柯坪县| 南部县| 台中市| 灵璧县| 城口县| 遂宁市| 西林县| 湖南省| 谷城县| 蓬溪县| 蓬莱市| 内黄县| 芷江| 甘谷县| 平顺县| 利川市| 绵竹市| 青龙| 云霄县| 东城区| 云林县| 南开区| 台北县| 怀化市| 信宜市| 湘乡市| 杭锦旗| 本溪| 新郑市| 靖江市| 威海市| 独山县| 广宁县| 肇源县| 灵丘县|