1

ViewFlipperの簡単な実装についてサポートが必要です。アクティビティのonCreateで子ビュー「ws.addView(childView)」を膨らませると、フリッパーは完璧に機能します。

フリッパーからすべての子を削除し、addView(child)メソッドを使用してそれらの子をもう1つ追加したいときに、問題が発生します。フリッパーのコンテンツを更新するという望ましい効果が得られないように見えるフリッパーでonFinishInflate()メソッドとinvalidate()メソッドを呼び出そうとしています。フリッパーのビューは空白です。addViewループの後にフリッパーに子が含まれているかどうかを確認しました。私の場合、その数は1より大きいです。何かが足りないのかもしれません。誰かが私を助けてくれることを願っています。

                ws.removeAllViews();
                ArrayList<View> childViews = getAllChildrenFromSomewhere();
                for (View childView : childViews) {
                    ws.addView(childView);
                }
                ws.onFinishTemporaryDetach();

                ws.onFinishInflate();
                ws.invalidate();    

よろしくお願いします

4

1 に答える 1

2

私は自分の質問に対する答えを見つけることができました。ViewFlipperからすべての子を削除し、次のステップはViewFlipperに新しい子を追加することでした。すべての子を削除してビューを無効にすると、子が選択されていないため、ビューが空白になりました。新しい子を追加し、ビューを再度無効にするだけで、ViewFlipperは空白のままになりました。ws.invalidate()の後にws.showNext()を使用すると、新しい子の最初の子が表示され、ViewFlipperが期待どおりに機能します。お役に立てれば。

            ws.removeAllViews();
            ArrayList<View> childViews = getAllChildrenFromSomewhere();
            for (View childView : childViews) {
                ws.addView(childView);
            }
            ws.onFinishTemporaryDetach();

            ws.onFinishInflate();
            ws.invalidate();  
            // show the first childView
            ws.showNext();

よろしくと幸せなコーディング:-)

于 2010-11-15T10:46:30.257 に答える