0

setVisibility to GONEを介してViewFlipper内のTextViewを無効にしようとしていますが、希望どおりに動作させることができません。私のコード:

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が1回のビューフリップで消えてから、再び表示されるようです。ただし、XMLファイルでGONEにハードコーディングされている場合でも、他のビューをその場所に移動するのではなく、ビューは単に空白になります。基本的には、TextViewを完全に削除したいだけです。これを達成する方法はありますか?

4

1 に答える 1

2

私も同じ問題を抱えています。INVISIBLEビューが表示されないよりも使用する方が良いですGONEが、それでもタイムスロットが必要です。たとえば、前のビューを2倍の長さで取得できます。

ViewFlipperから子ビューを追加および削除することで、希望どおりに機能するようになりました。GONE各サブビューをまたは(onResumeで)に設定していたコードではVISIBLE、.removeAllViews()を使用してフリッパーからすべてを削除し、表示可能に設定している場合は、.addView(mView)を使用してそれらを追加し直します。ViewFlipperが空の場合でも、正しいことを実行するように見えます。

于 2011-10-02T17:50:57.080 に答える