2014-06-30 2 views
1

친구,수 컴파일 타임

내가 300dp의 경계 폭을 가진 LinearLayout 3 텍스트 뷰가에 필요합니다. 각 텍스트보기는 layout_weight이 1이므로 화면은 TextViews 세 개로 균등하게 나뉩니다.

[텍스트 뷰 1] [텍스트 뷰 2] [텍스트 뷰 3

텍스트가 텍스트 뷰의 각 하나 개의 라인에 부합하는 시간의 대부분은 보이지 않고 어떤 기회가있다 아니. 텍스트가 두 줄을 필요로하고 TextView의 줄 수를 2로 설정할 수있는 방법이 있습니까?

TextViews 중 하나가 세 TextViews이 2 개 라인을 필요로하는 경우

는 짧은 대답은 네 - 텍스트 뷰의 텍스트 행 수는 텍스트 뷰 얼마나 당신을 말할 것이다 getLineCount() 방법을 가지고 두 개의 라인

+1

을 : lines'를 TextView의 높이가'wrap_content'로 설정되면 자동으로 여러 줄로 조정됩니다. 이것은 당신이 필요로하는 것이 아닙니까? –

+0

또는 단지'android : lines = "2"'를 설정하십시오. –

+0

android : lines을 지정하지 않았습니다. 높이는 "wrap_content"로 설정됩니다. 문제는 TextView1이 2 줄을 필요로하지만 TextView2와 TextView3이 필요하지 않다는 것입니다. 그러나 그들 중 하나가 2 줄을 필요로하더라도 모든 TextViews를 android : lines = 2 –

답변

1

로 설정해야합니다.

불행하게도이 방법이 제대로 작동하기 전에 TextView를 레이아웃하고 측정해야합니다.

동적 텍스트를 설정하는 경우 (예를 통해 setText()), 다음 레이아웃 패스과 같이 발생하는 경우에 대한 콜백 작성해야합니다 : 당신은`안드로이드를 지정하지 않으면

mTextView1.getViewTreeObserver() 
    .addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 
     @Override 
     public void onGlobalLayout() { 
      if (mTextView1.getLineCount() > 1) { // or textView2, etc. 
       // Adjust all text view heights 
      } 
     } 
    }); 
관련 문제