0

アプリケーションに現在の時刻を示す TextView があり、このように実装しました

private Handler handler = new Handler();


private Runnable runnable = new Runnable() 
{

public void run() 
{
   batteryLevel();
     if(clock_on == true) {


         Handler clockUpdate = new Handler(); 
         clockUpdate.postDelayed(new Runnable() { 
              public void run() {
                  executeClock();
              } 
         }, 500);



     }
     handler.post(this);






}

public void executeClock() {



    TextView timeTv = (TextView) findViewById(R.id.time);

    long currentTime=System.currentTimeMillis();
    Calendar cal=Calendar.getInstance();
    cal.setTimeInMillis(currentTime);
    String timeFormat24 = "%1$tH:%1$tM";   
 //   String timeFormat12 = "%1$tI:%1$tM";
    String showTime=String.format(timeFormat24,cal);
    timeTv.setText(showTime);


}

私のアプリには、ScrollingTextView、ScrollingtextView.javaもあります

public class ScrollingTextView extends TextView {

public ScrollingTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

public ScrollingTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public ScrollingTextView(Context context) {
    super(context);
}
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
    if(focused)
        super.onFocusChanged(focused, direction, previouslyFocusedRect);
}

@Override
public void onWindowFocusChanged(boolean focused) {
    if(focused)
        super.onWindowFocusChanged(focused);
}


@Override
public boolean isFocused() {
    return true;
}

}

<com.doublep.example.ScrollingTextView
            android:id="@+id/txt_lcd_message"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:ellipsize="marquee"
            android:marqueeRepeatLimit="marquee_forever"
            android:scrollHorizontally="true"
            android:singleLine="true"
            android:textColor="#f82424"
            android:textSize="30dp" />

時計の TextView が表示されている場合、ScrollingTextView は機能しません。時計の可視性をなくすと、ScrollingTextView は完全に機能します

なぜこうなった?どうすれば修正できますか?

EDIT:クロックを遅らせると、ScrollingTextViewが機能し始めますが、クロックTextViewが現在の時刻に設定されるとすぐに、ScrollingTextViewは機能しなくなります

更新: 少しテストした後、ScrollingTextView が機能していることに気付きましたが、executeClock() メソッドが実行されるたびに、ScrollingTextView アニメーションがリセットされ、もう一度開始されます

4

1 に答える 1

0

同じビューグループに時計のテキストビューとスクロールテキストビューがありますか?? たとえば、それらはすべて同じ線形レイアウトまたは相対レイアウトの子ビューですか?? それらを分離して、異なるビューグループの子にするようにしてください。それは私のために一度働いたし、あなたのためにも働くかもしれません

于 2012-09-18T22:18:20.943 に答える