Я пытаюсь создать расширяемое текстовое представление, оно работает правильно, но проблема заключается в том, что после поворота textview.getLinesCount () возвращает количество символов в текстовом представлении, а не количество строк, поэтому оно работает неправильнопосле поворота!
вот мой код:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_info, container, false);
if (getArguments() != null) {
overView = getArguments().getString("overview");
}
overViewTv = view.findViewById(R.id.info_overview);
moreView = view.findViewById(R.id.overview_more);
overViewTv.setText(overView);
int maxLines = 3;
overViewTv.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
overViewTv.getViewTreeObserver().removeOnPreDrawListener(this);
if (!moreClicked) {
if (overViewTv.getLineCount() > maxLines) {
moreView.setVisibility(View.VISIBLE);
overViewTv.setMaxLines(maxLines);
moreClicked = true;
}
}
return true;
}
});
moreView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (moreClicked) {
moreView.setImageResource(R.drawable.ic_expand_less_black_24dp);
overViewTv.setMaxLines(overViewTv.getLineCount());
moreClicked = false;
} else {
moreView.setImageResource(R.drawable.ic_expand_more_black_24dp);
overViewTv.setMaxLines(maxLines);
moreClicked = true;
}
}
});
return view;
}
Я также попробовал этот метод getViewTreeObserver().addOnGlobalLayoutListener()
, но то же самое произошло.