国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 福泉市| 永靖县| 金沙县| 大厂| 乃东县| 乡城县| 吴川市| 阳朔县| 乡宁县| 中超| 南华县| 延庆县| 华亭县| 平潭县| 永善县| 乐东| 扎囊县| 沭阳县| 南澳县| 全州县| 瑞丽市| 岢岚县| 边坝县| 桐乡市| 离岛区| 五寨县| 康乐县| 西畴县| 普兰店市| 二手房| 青冈县| 武山县| 忻州市| 绍兴县| 朝阳区| 隆安县| 巴林右旗| 宁武县| 新巴尔虎右旗| 铁岭市| 新竹县|