安卓 列表模式中,打开和关闭标记的时候,标记不能放在控件或内存中

2019-07-25  本文已影响0人  Pino

看demos,我这里是一个列表模式(单一条目不用看了),上下滚动,然后每一个条目的文字都可以收复或者展开

tv_show_more.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 这是点击的代码
                if (tv_remark.getTag().toString().equals("open")) {
                    tv_remark.setLines(5);
                    tv_show_more.setText(Html.fromHtml("<u><i>" + "More" + "</i></u>"));
                    tv_remark.setTag("close");
                } else {
                    tv_remark.setMaxLines(Integer.MAX_VALUE);
                    tv_show_more.setText(Html.fromHtml("<u><i>" + "Pack up" + "</i></u>"));
                    tv_remark.setTag("open");
                }
            }
        });

如果把一个开关变量保存在控件中,或者内存中,只要列表重新滚动,那么标记都会回复初始状态,
所以,如果要做开关.比如文字展开和收复的功能,只能在数据里面增加一个标记,只有这样才能在滚动的时候,恢复到上次打开或者关闭的状态

上一篇 下一篇

猜你喜欢

热点阅读