我已经滚动了我自己的自定义视图并可以在屏幕上绘图,但我真正想要做的是将屏幕的测量高度设置为1000px并让用户在Y轴上滚动,但是我我有这样的问题.有人可以帮忙吗?
这是一些代码:
public class TestScreen extends Activity { CustomDrawableView mCustomDrawableView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mCustomDrawableView = new CustomDrawableView(this); setContentView(mCustomDrawableView); } }
和
public class CustomDrawableView extends View { public CustomDrawableView(Context context) { super(context); setVerticalScrollBarEnabled(true); setMinimumHeight(1000); } @Override protected void onDraw(Canvas canvas) { canvas.drawLine(...); // more drawing } }
我试图通过调用super来覆盖scrollTo,scrollBy,awakenScrollBars等,但无济于事.我错过了一些愚蠢的事情,还是我犯了一些根本性的错误?
先感谢您,
马丁
加成:
我试图将此作为自定义组件添加到下面的布局文件,并使用setContentView(R.layout.exampleLayout)更改TestScreen中的代码以指向正确的资源,但这会导致模拟器崩溃.我尝试将代码评论到最低限度并且它仍然崩溃,所以我正在做的事情根本就是错误但是我不确定它是什么:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent"> <com.martyn.testApp.CustomDrawableView android:layout_width="fill_parent" android:layout_height="fill_parent" /> </ScrollView> </LinearLayout>
解决方法
只需将您的视图放在ScrollView中即可!
请注意,ScrollWiew应该是根节点(这是你的LinearLayout)