我知道很多人都有类似的问题,但我找不到解决方案。我创建了一个扩展SurfaceView的自定义View。当我使用时,此视图非常有效:
setContentView(graphView);
但是我希望它嵌入在HorizontalScrollView中。如果我用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);
然后屏幕只是黑色。我还尝试了上面显示的代码的许多变体,但都没有成功。我哪里错了?
答案 0 :(得分:0)
你应该能够在xml中获得它没问题 - 尝试在滚动视图内的ListView中嵌入自定义图形视图;根据我使用horizontalScrollView的经验,他们倾向于选择他们的内容。如果这不起作用,请尝试测试以查看帧视图是否存在问题。只需在水平滚动视图中添加一个按钮,看看是否可以显示该按钮。如果没有,那么尝试显示框架时会出现问题,并且它与您的自定义代码无关。
答案 1 :(得分:0)
原来这不是解决这个问题的方法:
http://www.mail-archive.com/android-developers@googlegroups.com/msg45804.html
我的解决方案是我不会使用SurfaceView,而是我可能会绘制一个Bitmap并将其放在一个imageview中,然后我可以放入ScrollView。