【发布时间】:2016-11-30 18:55:47
【问题描述】:
我已经推出了自己的自定义视图,并且可以在屏幕上绘制,但我真正想做的是将屏幕的测量高度设置为 1000 像素,然后让用户在 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、wakeScrollBars 等,但无济于事。我错过了什么愚蠢的东西,还是我犯了一些根本性的错误?
提前谢谢你,
马丁
加法:
我尝试将其添加为具有以下布局文件的自定义组件,并将TestScreen 中的代码更改为使用setContentView(R.layout.exampleLayout) 指向正确的资源,但这会导致模拟器崩溃。我尝试将代码注释到最低限度,但它仍然崩溃,所以我正在做一些根本性的错误,但我不确定它是什么:
<?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>
【问题讨论】: