私は非常によく似た質問があります: 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を別のビューでラップしますか?コードを不必要に複雑にしたくはありません。