setVisibility не работает в ViewFlipper
Я пытаюсь отключить TextView в ViewFlipper через setVisibility для GONE и не могу заставить его работать так, как я хочу. Мой код:
switch(index) {
case 0:
//Do Stuff
findViewById(R.id.o2).setVisibility(8);
findViewById(R.id.o3).setVisibility(8);
break;
case 1:
//Do Stuff
findViewById(R.id.o3).setVisibility(8);
break;
case 2:
//Do Stuff
break;
}
мой XML
<ViewFlipper android:id="@+id/oFlipper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:flipInterval="1000"
android:inAnimation="@anim/push_up_in"
android:outAnimation="@anim/push_up_out">
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textSize="26sp"
android:text="Opponents:"/>
<TextView android:id="@+id/o1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textSize="26sp"
android:visibility="gone"/>
<TextView android:id="@+id/o2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textSize="26sp"
android:text="2"/>
<TextView android:id="@+id/o3"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textSize="26sp"
android:text="3"/>
</ViewFlipper>
Я пробовал код до и после.startFlipping() безрезультатно. Похоже, что TextView пропал один раз, а затем снова появляется. Но даже когда он жестко запрограммирован на GONE в XML-файле, представление просто пустое, а не сдвигает другие представления на свои места. Я просто хочу, чтобы TextView полностью исчез. Есть ли способ сделать это?
1 ответ
У меня была такая же проблема. С помощью INVISIBLE
лучше, чем GONE
представление не отображается, но оно все еще занимает временной интервал, например, вы получаете предыдущее представление вдвое дольше, чем нужно.
У меня все работает так, как я хочу, добавляя и удаляя дочерние представления из ViewFlipper. В коде, где я настраивал каждый подвид GONE
или же VISIBLE
(в onResume) Теперь я удаляю их все из флиппера с помощью.removeAllViews(), затем, если я устанавливал их в видимый, я добавляю их обратно с помощью.addView(mView); Он даже выглядит правильно, когда ViewFlipper пуст.