У меня есть пользовательский вид, который расширяет представление. Он отображает нарисованные фигуры и позволяет пользователю добавлять эти чертежи посредством рисования событий касания к представлению через onDraw.
Я включил ScaleGestureDetector, чтобы пользователь мог увеличить масштаб в определенном разделе и рисовать, но поскольку я использую однократное нажатие для рисования, они не могут использовать свой палец для панорамирования увеличенного изображения в представлении.
Я попытался включить полосы прокрутки для представления так, чтобы при их увеличении полосы прокрутки отображались и могут использоваться пользователем для панорамирования... но я просто не могу заставить полосы прокрутки отображаться.
По существу, я пытаюсь вызвать метод View awakenScrollBars()
в моем методе ScaleListener onScale()
, когда пользователь будет увеличен, что вызывает invalidate()
. Я включил полосы прокрутки через XML и программно в onCreate()
, но я не могу заставить полосы прокрутки быть видимыми. Вот мой XML:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.package.name.Canvas
android:id="@+id/canvas"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:scrollbars="horizontal|vertical" />
</FrameLayout>
И вот мой onCreate():
// set scrollbars
setHorizontalScrollBarEnabled(true);
setVerticalScrollBarEnabled(true);
В onDraw я могу проверить, что полосы прокрутки включены с помощью isHorizontalScrollBarEnabled()
и isVerticalScrollBarEnabled()
, а awakenScrollBars()
в onScale()
возвращает true, но полосы прокрутки просто не видны.
Любые предложения о том, как действовать? Содержит пользовательский вид в макете ScrollView, похоже, не является опцией, так как поддерживается только вертикальная прокрутка.
Спасибо,
Пол