Проблема с ViewFlipper

#android #viewflipper

#Android #viewflipper

Вопрос:

у меня есть XML-файл, который включает ViewFlipper, и я хочу показать следующий вид (в viewflipper) через 3 секунды, но он не отображается после этого периода: XML:

 <?xml version="1.0" encoding="UTF-8"?>
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@ id/flipper" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <RelativeLayout android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TextView android:id="@ id/sipLabel" android:textSize="20sp"
            android:layout_width="fill_parent" android:layout_height="wrap_content" />
        <ImageView android:id="@ id/disconnected" android:src="@drawable/disconnected"
            android:layout_below="@id/sipLabel" android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:layout_weight="0.35"
            android:gravity="center" android:visibility="visible" />
    </RelativeLayout>
    <RelativeLayout android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <TextView android:id="@ id/sipLabel" android:textSize="20sp"
            android:layout_width="fill_parent" android:layout_height="wrap_content" />
        <ImageView android:id="@ id/connected" android:src="@drawable/connected"
            android:layout_below="@id/sipLabel" android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:layout_weight="0.35"
            android:gravity="center" android:visibility="visible" />
    </RelativeLayout>
</ViewFlipper>
  

JAVA-код:

 public void onRegistrationDone(String localProfileUri, long expiryTime)
{
    updateStatus("Registered to server.");
    Log.d("SUCCEED", "Registration DONE");

    final ViewFlipper flipper = (ViewFlipper) findViewById(R.id.flipper);
    flipper.postDelayed(new Runnable()
    {
        public void run()
        {
            flipper.showNext();
        }
    }, 3000);
}
  

В чем проблема? почему следующий просмотр не отображается?

Спасибо вам за вашу помощь.

Комментарии:

1. Ну ладно, у меня есть @drawable / connected в двух представлениях! однако textview не отображается во втором представлении, у меня есть только изображение! есть идеи? Спасибо.

2. вы уверены, что onRegistrationDone это выполняется в потоке пользовательского интерфейса? Если это так, если updateStatus метод не выдает исключение, этот код работает нормально!

Ответ №1:

попробуйте это вместо запуска потока:

 viewFlipper.setFlipInterval(FLIP_INTERVAL);
viewFlipper.startFlipping();
  

вы можете установить значение FLIP_INTERVAL в миллисекундах.