getLineCount возвращает количество символов после ориентации, а не номер строки - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь создать расширяемое текстовое представление, оно работает правильно, но проблема заключается в том, что после поворота 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(), но то же самое произошло.

...