2014-06-09 108 views
0

我有一個簡單的相機應用程序,我在alertdialog中使用了一個surfaceview來顯示取景器。我注意到如果我通過更改alertdialog的大小手動調整取景器的大小,那麼surfaceChanged()回調不會在方向更改時觸發。如果我評論setlayout行,它會觸發很好。我是否缺少標誌或配置設置?當對話框調整大小時,surfaceChanged回調不會觸發

感謝任何輸入。

代碼:

mBuilder = new AlertDialog.Builder(mContext); 
mBuilder.setTitle("test dialog"); 
mAlertDialog = mBuilder.create(); 

mFrameLayout = new FrameLayout(mContext); 
mSurfaceView = new SurfaceView(mContext); 
mFrameLayout.addView(mSurfaceView, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 

mAlertDialog.setView(mFrameLayout, 0, 0, 0, 0); 

mSurfaceView.getHolder().addCallback(mSHcallCallback); 

mAlertDialog.show(); 

mAlertDialog.getWindow().setLayout(200, 600); 

這是活動類外定義

​​

回答

相關問題