2013-03-27 306 views
0

在我的應用程序中,我顯示了幾個文本視圖,其中包含運行時加載的各種長度的文本。在運行時間之前,我不知道文本視圖的尺寸或文本的長度。有時,當文字很長,TextView的小一些文本是部分可見,例如:Android TextView:我可以停止顯示部分顯示的文本

enter image description here

我想,因爲它看起來有點蹩腳,除去部分可見的文字,但我可以」找到一種方法來做到這一點。任何幫助,將不勝感激!

感謝,

戴夫

+0

使您的視圖可滾動。 – Raghunandan 2013-03-27 11:25:46

+0

android:maxLines =「1」 – Triode 2013-03-27 11:27:30

回答

0

可以硬的方式,文本的第二行是不可見的代碼的TextView高度。

或使用:

android:maxLines , Makes the TextView be at most this many lines tall. 

如上建議。

0

將您的文字瀏覽放在滾動視圖佈局中。併爲您的文本視圖指定一個特定的寬度並使高度包裝內容。因此,您的文本不會被剪切。

+0

感謝您的幫助。我無法更改文本視圖的寬度或高度,它們是日記顯示的一部分,高度代表事件的長度。我想知道是否有辦法刪除任何部分可見的文本給這些限制。 – 2013-03-27 13:27:09

0

這就是我做到的。我跑這個代碼的活動已經發布方法CheckTextIsVisible父RelativeLayout的的處理器隊列加載之後,否則textviews的高度也不會知道:

m_eventsLayout.Post(new Action(CheckTextIsVisible)); 

然後,該方法CheckTextIsVisible找到的每個TextView的文本在它,計算字體的高度,工作了許多行如何適應在TextView的,並相應地設置的最大行數:

private void CheckTextIsVisible() 
    { 
     View view; 
     TextView tView; 
     Android.Text.TextPaint tPaint; 
     float height; 
     int heightOfTextView; 
     int noLinesInTextView; 
     for (int i = 0; i < m_eventsLayout.ChildCount; i++) 
     { 
      view = m_eventsLayout.GetChildAt(i); 

      if (view is TextView) 
      { 
       tView = (TextView)view; 
       if (tView.Text != "") 
       {   
        //calculate font height 
        tPaint = tView.Paint; 
        height = CalculateTextHeight(tPaint.GetFontMetrics()); 
        //calculate the no of lines that will fit in the text box based on this height 
        heightOfTextView = tView.Height; 
        noLinesInTextView = (int)(heightOfTextView/height); 
        //set max lines to this 
        tView.SetMaxLines(noLinesInTextView); 
       } 
      } 
     } 
    } 

    private float CalculateTextHeight(Android.Graphics.Paint.FontMetrics fm) 
    { 
     return fm.Bottom - fm.Top; 
    } 

這將導致部分不可見的文字!