如何在mpandroidchart中收听滚动完成事件。
我覆盖了 OnChartGestureListener
和 OnChartValueSelectedListener
,但这似乎不起作用。 onChartTranslate()
方法即使在滚动结束后也会获得回调。
onChartGestureStart()
,一旦用户停止触摸图表,就会调用 onChartGestureEnd()
。
所以,我需要捕捉滚动结束时调用的事件。
所以,您能不能对mpandroidchart中的线图滚动端进行聆听。
答案 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)
}
}