我使用的是recyclerview和holder adapter。这有textview和maxlines是4.我想如果用户单击然后再次展开单击然后折叠。
我的代码正在运作,但我有一个问题; 当我单击textview时,这将扩展工作正常但当我滚动到下面列表时,一些textview是自动扩展状态(但我没有触摸它们)。
XML:
<android.support.v7.widget.AppCompatTextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/uiPadding_4dp"
android:maxLines="4"/>
持有人:
private final List<Integer> listReadMore = new ArrayList<>();
public void onBind(final Holder holder, final int position) {
final Obj obj = getObj(position);
final int id = obj.id();
final String text = obj.text();
holder.text.post(new Runnable() {
@Override
public void run() {
if(holder.text.getLineCount() >= maxLine)
listReadMore.add(id);
}
});
holder.text.setText(Kit.doHtmlText(text));
holder.text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(listReadMore.contains(id)){
ObjectAnimator animation = ObjectAnimator.ofInt(
holder.text,
"maxLines",
holder.text.getLineCount());
animation.setDuration(600);
animation.start();
listReadMore.remove(listReadMore.indexOf(id));
}else{
ObjectAnimator animation = ObjectAnimator.ofInt(holder.text, "maxLines", 4);
animation.setDuration(400);
animation.start();
listReadMore.add(id);
}
}
});
}
当我使用简化代码时,我又遇到了同样的问题..
holder.text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
holder.text.setMaxLines(100);
}
});
我使用https://github.com/Manabu-GT/ExpandableTextView这个api但在recyclerview上有一些问题。
我不知道我该怎么做..