2013-08-26 23 views
0

當我使用Digital clocktextview marquee,然後textview marquee不起作用 - 如果我刪除數字時鐘,它完美的作品。TextView字幕和數字時鐘

TextView tv = new TextView(this); 

    tv.setLayoutParams(paramsSong);  
    tv.setEllipsize(TruncateAt.MARQUEE); 
    tv.setFocusableInTouchMode(true); 
    tv.setFreezesText(true); 
    tv.setSingleLine(true); 
    tv.setMarqueeRepeatLimit(-1); 
    tv.setText("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); 
    tv.setSelected(true); 
      rl.addView(tv); 

    DigitalClock dg = new DigitalClock(this); 
      rl.addView(dg); 

/*if I remove digital clock then it works*/ 

我不能同時使用兩者嗎?有沒有解決方法?

+2

嘗試設置DigitalClock(又名寬度和高度) –

+1

RU的恆定大小的'DigitalClock'的'LayoutParams'設置到右側或左側的' TextView'? – bakriOnFire

+0

Thanx @MarekSebera現在正在工作。 –

回答

3

是的,你可以使用這些但是首先糾正你的錯誤

1.要添加視圖rl.addView(tv); 2次

2.設置HeightDigitalClock

Width試試下面的代碼這對我來說工作很好

TextView tv = new TextView(this); 
    rl.addView(tv);// Here is Your Mistake ! Remove it 
    tv.setLayoutParams(paramsSong);  
    tv.setEllipsize(TruncateAt.MARQUEE); 
    tv.setFocusableInTouchMode(true); 
    tv.setFreezesText(true); 
    tv.setSingleLine(true); 
    tv.setMarqueeRepeatLimit(-1); 
    tv.setText("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); 
    tv.setSelected(true); 
      rl.addView(tv);// Adding view Here is Absolutely Right ! 

    DigitalClock dg = new DigitalClock(this); 
    dg.setHeight(setHeightHere); 
    dg.setWidth(setWidthHere); 
      rl.addView(dg); 

PS。DigitalClock class was deprecated in API level 17

文檔http://developer.android.com/reference/android/widget/DigitalClock.html

This class was deprecated in API level 17. 
It is recommended you use TextClock instead. 

http://developer.android.com/reference/android/widget/TextClock.html

+0

是的,我刪除它。但是,如果不給予寬度和高度,它就無法工作。正如馬立克在評論中所說 - 無論如何+1幫助- –

+0

@TarunDroid歡迎:) –

+0

@TarunDroid但它的('DigitalClock')工作正常,我沒有設置寬度和高度!除了我的答案唯一的事情我要保重的是這是LayoutParams!即我使用了'LinearLayout with orientation Vertical',以便'DigitalClock'可以顯示在'TextView'下面 –