Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 在Kotlin中放大/缩小滚动视图_Xml_Android Studio_Kotlin_Scrollview_Pinchzoom - Fatal编程技术网

Xml 在Kotlin中放大/缩小滚动视图

Xml 在Kotlin中放大/缩小滚动视图,xml,android-studio,kotlin,scrollview,pinchzoom,Xml,Android Studio,Kotlin,Scrollview,Pinchzoom,首先,我使用下面的站点作为参考,并直接放大表格。但这里没有任何错误,但它不起作用 之后,我试图在scrollview中制作一个可缩放的时间表。但同样的问题再次发生 注: 时间表是一个片段,因此我使用了2 setContentView class MainActivity : AppCompatActivity() { private lateinit var mScaleDetector: ScaleGestureDetector private var scaleFactor = 1.0f

首先,我使用下面的站点作为参考,并直接放大表格。但这里没有任何错误,但它不起作用

之后,我试图在scrollview中制作一个可缩放的时间表。但同样的问题再次发生

注: 时间表是一个片段,因此我使用了2 setContentView

class MainActivity : AppCompatActivity() {

private lateinit var mScaleDetector: ScaleGestureDetector
private var scaleFactor = 1.0f
private lateinit var table : ScrollView
lateinit var gestureDetector :GestureDetector


override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.fragment_week_timetable)

    gestureDetector = GestureDetector(this, GestureListener())
    mScaleDetector = ScaleGestureDetector(this, ScaleGestureDetector.SimpleOnScaleGestureListener())
    table = findViewById<ScrollView>(R.id.scrollView2)
    mScaleDetector = ScaleGestureDetector(this, ScaleListener())
    setContentView(R.layout.activity_main)

}

override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
    super.dispatchTouchEvent(ev)
    mScaleDetector.onTouchEvent(ev)
    gestureDetector.onTouchEvent(ev)
    return gestureDetector.onTouchEvent(ev)
}

private inner class ScaleListener : ScaleGestureDetector.SimpleOnScaleGestureListener() {
    override fun onScale(scaleGestureDetector: ScaleGestureDetector): Boolean {

        scaleFactor *= scaleGestureDetector.scaleFactor
        scaleFactor = max(0.1f, min(scaleFactor, 10.0f))
        table.scaleX = scaleFactor
        table.scaleY = scaleFactor
        return true
    }
}

private class GestureListener : GestureDetector.SimpleOnGestureListener() {
    override fun onDown(e: MotionEvent): Boolean {
        return true
    }
    override fun onDoubleTap(e: MotionEvent): Boolean {
        return true;
    }
}
class MainActivity:AppCompatActivity(){
私有lateinit var mScaleDetector:ScaleGetStureDetector
专用变量scaleFactor=1.0f
私有lateinit变量表:ScrollView
lateinit变量gestureDetector:gestureDetector
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.fragment\u week\u时间表)
gestureDetector=gestureDetector(此,GestureListener())
mScaleDetector=scalegestruedetector(这是scalegestruedetector.simpleOnScalegestrueListener())
table=findViewById(R.id.scrollView2)
mScaleDetector=scalegestruedetector(这是ScaleListener())
setContentView(R.layout.activity_main)
}
覆盖趣味dispatchTouchEvent(ev:MotionEvent?):布尔值{
超级dispatchTouchEvent(ev)
mScaleDetector.onTouchEvent(电动汽车)
手势检测器。开触点(ev)
返回手势检测器。开触点(ev)
}
私有内部类ScaleListener:scalegestruedetector.SimpleOnScalegestrueListener(){
按比例覆盖乐趣(scalegestruedetector:scalegestruedetector):布尔值{
scaleFactor*=scalegestruedetector.scaleFactor
缩放因子=最大值(0.1f,最小值(缩放因子,10.0f))
table.scaleX=scaleFactor
table.scaleY=scaleFactor
返回真值
}
}
私有类GestureListener:GestureDetector.SimpleOnGestureListener(){
override fun onDown(e:MotionEvent):布尔值{
返回真值
}
override fun onDoubleTap(e:MotionEvent):布尔值{
返回true;
}
}