1

私は非常によく似た質問があります: ViewPager +SurfaceView=アクティビティに戻るときの長い遅延

API 10を使用しているため、フラグメントを使用していないことを除いて。

ViewPagerにSurfaceViewsがありますが、新しいページにスクロールすると描画に時間がかかることを除けば、うまく機能しています。SurfaceView.surfaceCreatedメソッドが呼び出されるのは、SurfaceViewが画面に表示されるまでです。ViewPagerのPagerAdapter.instantiateItemが呼び出され、SurfaceViewがaddViewを介してViewPagerに追加されたときにサーフェスを作成したいと思います。その時点でSurfaceViewにサーフェスを作成させる方法はありますか?

AwesomePagerの例に基づくコードを使用しています

        @Override
        public Object instantiateItem(View collection, int position) {
            Log.i("Main Activity", "instantiateItem p:" + position);
            View p;
            if(position == 1){
                    // Page003 is a surfaceview
                p = new Page003(cxt, position);
            } else {
                    // in the future I will create more pages!
                p = new Page003(cxt, position);
            }
            ((ViewPager) collection).addView(p);

            return p;
        }

他の質問の答えに似た方法がありますか?SurfaceViewを別のビューでラップしますか?コードを不必要に複雑にしたくはありません。

4

1 に答える 1