programing

TextView의 maxLines와 ellipsize를 동시에 설정하는 방법

projobs 2021. 1. 14. 08:01
반응형

TextView의 maxLines와 ellipsize를 동시에 설정하는 방법


텍스트보기를 최대 5 줄로 제한하고 싶습니다.

<TextView
    android:id="@+id/text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"  
    android:maxLines="5" />

하지만 텍스트가 잘릴 때 '...'를 추가하도록 구성하려고하면 android : ellipsize = "end"를 추가합니다. 나는 ...하지만 내 TextView에는 5 대신 최대 2 줄만 있습니다.

최대 5 줄의 텍스트보기를 만들고 잘릴 때 '...'를 추가하는 방법을 제안 해 주시겠습니까?

감사합니다.


점진적으로 다음을 사용할 수 있습니다.

your_text_view.setEllipsize(TextUtils.TruncateAt.END);
your_text_view.setMaxLines(4);
your_text_view.setText("text");  

이 코드를 사용해보십시오 ...

    final TextView tv_yourtext = (TextView)findViewById(R.id.text);

    tv_yourtext.setText("A really long text");
    ViewTreeObserver vto = tv_yourtext.getViewTreeObserver();
    vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

        @Override
        public void onGlobalLayout() {
            ViewTreeObserver obs = tv_yourtext.getViewTreeObserver();
            obs.removeGlobalOnLayoutListener(this);
            if(tv_yourtext.getLineCount() > 6){
                Log.d("","Line["+tv_yourtext.getLineCount()+"]"+tv_yourtext.getText());
                int lineEndIndex = tv_yourtext.getLayout().getLineEnd(5);
                String text = tv_yourtext.getText().subSequence(0, lineEndIndex-3)+"...";
                tv_yourtext.setText(text);
                Log.d("","NewText:"+text);
            }

        }
    });

이 줄을 TextView에 추가하기 만하면됩니다.

android:ellipsize="marquee"

이 경우에는를 지정하고 inputType로 설정해야합니다 none. 다음과 같이 보일 것입니다.

<TextView
  android:ellipsize="end"
  android:inputType="none"
  android:maxLines="2"

같은 질문이 있습니다 android ellipsize multiline textview 이것은 알려진 버그이며 꽤 오래되었으며 아직 수정되지 않았습니다.

누군가가 해결 방법을 게시했습니다. http://code.google.com/p/android-textview-multiline-ellipse/ 아마도 도움이 될 것입니다 (또는 다른 사람)


TextView 높이를 상수 값 (예 : 50dp)으로 설정하면 잘 작동합니다.


<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"  
android:maxLines="5"
android:ellipsize="end" />

나를 위해 작동합니다. TextView 상단 컨테이너의 높이가

android:layout_height="wrap_content"

참조 URL : https://stackoverflow.com/questions/2909424/how-to-set-maxlines-and-ellipsize-of-a-textview-at-the-same-time

반응형