我正在尝试通过setVisibility禁用ViewFlipper中的TextView到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已经消失了一个视图翻转然后重新出现。但即使在XML文件中硬编码为GONE,视图也只是空白而不是将其他视图移动到位。我基本上只是希望TextView完全消失。有没有办法实现这个目标?
答案 0 :(得分:2)
我遇到了同样的问题。使用INVISIBLE
优于GONE
视图未显示但仍占用时间段,例如你得到之前的观点的时间是你应该的两倍。
通过在ViewFlipper中添加和删除子视图,我可以按照自己的方式工作。在我将每个子视图设置为GONE
或VISIBLE
(在onResume中)的代码中,我现在使用.removeAllViews()从鳍状肢中删除它们然后如果我将它们设置为可见我添加它们用.addView(mView)返回;当ViewFlipper为空时,它甚至会做正确的事情。