我有一个扩展View的自定义视图.它显示绘制的形状,并允许用户通过onDraw将触摸事件绘制到视图中来添加到这些绘图.
我启用了ScaleGestureDetector,以便用户可以放大特定部分并进行绘制,但是当我使用单点触摸绘制时,他们无法使用手指在放大的视图中平移.
我已经尝试为View启用滚动条,当它们被放大时,滚动条会显示并且可以被用户用来平移...但我根本无法显示滚动条.
本质上,我正在做的是当用户放大时触发awakenScrollBars()我的ScaleListener方法中的View 方法.我通过XML和编程方式启用了滚动条,但是我无法触发滚动条可见.这是我的XML:onScale()invalidate()onCreate()
<?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>
Run Code Online (Sandbox Code Playgroud)
这是我的onCreate():
// set scrollbars
setHorizontalScrollBarEnabled(true);
setVerticalScrollBarEnabled(true);
Run Code Online (Sandbox Code Playgroud)
在onDraw有,我可以确认的是,滚动条通过启用isHorizontalScrollBarEnabled()和isVerticalScrollBarEnabled(),并awakenScrollBars()在onScale()返回true,但滚动条只是不可见.
有关如何进行的任何建议?在ScrollView布局中包含自定义视图似乎不是一个选项,因为它只支持垂直滚动.
谢谢,
保罗