嵌入在Horizo​​ntalScrollView中时,我的自定义视图不可见

时间:2011-07-25 14:44:42

标签: android horizontalscrollview custom-view

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

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);

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

原来这不是解决这个问题的方法:

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

我的解决方案是我不会使用SurfaceView,而是我可能会绘制一个Bitmap并将其放在一个imageview中,然后我可以放入ScrollView。