Android 在HorizontalScrollView中加载自定义SurfaceView时未调用surfaceCreated()

Android 在HorizontalScrollView中加载自定义SurfaceView时未调用surfaceCreated(),android,scrollview,surfaceview,horizontalscrollview,textureview,Android,Scrollview,Surfaceview,Horizontalscrollview,Textureview,我正在尝试将自定义的SurfaceView嵌入水平滚动视图中。我已正确设置了所有内容,但没有回调到作为SurfaceHolder.callback接口的一部分实现的surfaceCreated()。布局xml的一部分是: .......... <HorizontalScrollView android:id="@+id/horizScroller" android:layout_width="match_parent" android

我正在尝试将自定义的
SurfaceView
嵌入
水平滚动视图
中。我已正确设置了所有内容,但没有回调到作为
SurfaceHolder.callback
接口的一部分实现的
surfaceCreated()
。布局xml的一部分是:

..........
    <HorizontalScrollView
        android:id="@+id/horizScroller"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scrollbars="none">

            <com.purandara.views.PitchSurfaceView
                android:id="@+id/pitchView"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_marginTop="@dimen/lesson_page_title_bar_height"
                android:layout_marginBottom="@dimen/lesson_page_ctrl_bar_height"/>

    </HorizontalScrollView>
..............
在我的onCreate()方法中,我设置了如上所述的内容视图,其中
活动\u评估
是一个
框架布局
,包含
水平滚动视图
,作为直接子级

在自定义视图的构造函数中,我获得
surfacehold
的句柄,然后通过

mSurfaceHolder = getHolder();
mSurfaceHolder.addCallback(this);
我想这是一种非常标准的方法。完成此操作后,当我加载我的活动时,我会看到一个黑色的空白屏幕,其中应该显示我的自定义
SurfaceView
,而我的
surfaceCreated()
方法没有收到回调。如果你需要更多的信息,请告诉我。
谢谢。

SurfaceView无法正常滚动,因为视图部分和曲面部分是独立的。当视图移动时,它必须向窗口管理器发送一个IPC请求以移动曲面,这意味着移动滞后了几帧。既然你有了TextureView,你应该坚持下去。不确定回调为什么没有启动;如果您想深入了解它,您需要显示一些代码(例如onCreate()),我已经为我的实现添加了一些代码和解释。
mSurfaceHolder = getHolder();
mSurfaceHolder.addCallback(this);