0

我知道很多人都遇到过类似的问题,但我找不到解决方案。我创建了一个扩展 SurfaceView 的自定义视图。当我使用时,此视图非常有效:

setContentView(graphView);

但是我希望它嵌入到 Horizo​​ntalScrollView 中。如果我用 xml 尝试这个:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true">

<com.stuff.graph.GraphView
android:id="@+id/graph"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>

</HorizontalScrollView>
</FrameLayout>

然后我得到一个致命的异常,我的应用程序关闭。

如果我尝试以编程方式解决此问题:

graphView = new GraphView(this);
graphView.setVisibility(View.VISIBLE);
myScrollView = new HorizontalScrollView(this);

graphView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
myScrollView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));        

myScrollView.addView(graphView);      

setContentView(myScrollView);

然后屏幕就黑了。我还尝试了上面显示的代码的许多变体,但没有一个成功。我哪里错了?

4

2 回答 2

0

您应该能够在 xml 中得到它没问题 - 尝试将您的自定义图形视图嵌入到滚动视图内的 ListView 中;根据我对 Horizo​​ntalScrollView 的经验,他们往往对自己的内容非常挑剔。如果这不起作用,请尝试测试以查看框架视图是否存在问题。只需在水平滚动视图中添加一个按钮,看看是否可以显示它。如果不是,那么尝试显示框架时会出现问题,并且与您的自定义代码无关。

于 2011-07-25T14:51:07.687 回答
0

事实证明,这并不是真正解决此问题的方法:

http://www.mail-archive.com/android-developers@googlegroups.com/msg45804.html

我的解决方案是我不打算使用 SurfaceView,而是我可能会绘制到位图并将其放入图像视图中,然后我可以将其放入 ScrollView 中。

于 2011-07-26T08:51:37.053 回答