Я прокрутил свое собственное представление и могу потянуть на экран хорошо, но что я действительно хотел бы сделать, установлен measuredHeigh экрана к, скажем, 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
}
}
Я попытался переопределить scrollTo, scrollBy, awakenScrollBars и т.д. с вызовом к супер, но напрасно. Я пропускаю что-то глупое, или я делаю некоторую фундаментальную ошибку?
Заранее спасибо,
Martyn
Дополнение:
Я попытался добавить это как пользовательский компонент с ниже файла расположения и изменил код в 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>
Просто поместите ваше представление в ScrollView!
Обратите внимание, что ScrollWiew должен быть корневым узлом. (здесь это ваш LinearLayout)