滚动mpandroidchart中的折线图的完成监听器

时间:2018-12-18 09:25:09

标签: android mpandroidchart

如何在mpandroidchart中收听滚动完成事件

我覆盖了 OnChartGestureListener OnChartValueSelectedListener ,但这似乎不起作用。 onChartTranslate() 方法即使在滚动结束后也会获得回调。

用户触摸图表时会调用

onChartGestureStart() ,一旦用户停止触摸图表,就会调用 onChartGestureEnd()

所以,我需要捕捉滚动结束时调用的事件。

所以,您能不能对mpandroidchart中的线图滚动端进行聆听。

3 个答案:

答案 0 :(得分:1)

您需要执行以下操作:

@Override
        public void onChartGestureEnd(MotionEvent me, ChartTouchListener.ChartGesture lastPerformedGesture)
        {
            if(data.getEntryCount() == (int) chart.getHighestVisibleX())
            {
                // Do your work here
                Toast.makeText(getContext(),"Hello Scroll to end check working",Toast.LENGTH_LONG).show();
            }
        }

这将检查滚动是否达到x轴上的最后一个值。您可能需要一点定制,但这是这样做的方法。

答案 1 :(得分:0)

这对我有用 检查了图表中滚动的开始和结束

model = Sequential()
model.add(Conv2D(32, kernel_size=3, input_shape=(530, 400, 1)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.2))
model.add(Conv2D(32, kernel_size=3))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.5))
model.add(Conv2D(64, kernel_size=3))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(64))
model.add(Activation('relu'))
#model.add(Dropout(0.5))
model.add(Dense(2)) #or n_clasess
model.add(Activation('softmax'))

model.compile(optimizer=Adam(0.0001), loss='categorical_crossentropy', metrics=['accuracy'])

答案 2 :(得分:0)

更好的方法是使用这种逻辑的库自己的监听器:

override fun onChartTranslate(me: MotionEvent?, dX: Float, dY: Float) {
                if(dX > 0){
                    //backward dragging
                }
                else if(mChart.highestVisibleX == mChart.xAxis.axisMaximum){
                    //forward dragging reached at max (can not be dragged more)
                }
            }