GraphView
GraphView copied to clipboard
Conflic with viewpager
Hello. I have conflict with viewpager. When I want to set parameter isScalable = true and scroll my graph viewpager scrolling instead.
Code
`
override fun onPostExecute(result: List<DHT11_Data>?) {
super.onPostExecute(result)
result!!.let {
var list: MutableList<DataPoint> = ArrayList()
val temp_gragh = view!!.findViewById<GraphView>(R.id.temperature_graph)
result.mapTo(list) { DataPoint(it.created_at, it.temperature.toDouble()) }
var aas = list.toTypedArray()
var series = LineGraphSeries(aas)
temperature_graph!!.viewport.isScalable = true
series.isDrawDataPoints = true
temperature_graph!!.addSeries(series)
temperature_graph!!.viewport.setMinX(aas!!.get(0)!!.x ?: 0.0)
if (resources.getInteger(R.integer.num_axis) < list.size - 1)
temperature_graph!!.viewport.setMaxX(aas.get(resources.getInteger(R.integer.num_axis)).x ?: 1.0)
else
temperature_graph!!.viewport.setMaxX(aas.get(list.size - 1).x ?: 1.0)
temperature_graph!!.viewport.setMinY(aas.minBy { it.y }!!.y - 0.5)
temperature_graph!!.viewport.setMaxY(aas.maxBy { it.y }!!.y + 0.5)
temperature_graph!!.viewport.isXAxisBoundsManual = true
temperature_graph!!.viewport.isYAxisBoundsManual = true
//temperature_graph!!.viewport.maxXAxisSize = 1.0
temperature_graph!!.gridLabelRenderer.numHorizontalLabels = resources.getInteger(R.integer.num_axis) + 1
temperature_graph!!.viewport.isScalable = true
temperature_graph!!.viewport.isScrollable = true
val ddf = SimpleDateFormat("MM\\dd\\yyyy")
temperature_header!!.text = String.format(resources
.getString(R.string.temperature_header), ddf.format(result.get(0).created_at))
cur_date = result.get(0).created_at.zeroTime()
swiperefresh_temperature!!.isRefreshing = false
}
` override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val args = arguments
val date = args!!.getString("DATE").toDate()
LoadData().execute(date)
val sdf = DateAsXAxisLabelFormatter(context, SimpleDateFormat("HH:mm"))
temperature_graph!!.gridLabelRenderer.labelFormatter = sdf
temperature_graph!!.setOnClickListener {
}`
Could u clarify what u meant by "isScalable = true and scroll my graph viewpager scrolling instead." You want to scroll the viewpage while allowing to scroll graph? Or you cant scroll graph? A picture would also be nice to understand the problem.
When I try to scroll graph, viewpager scrolls. https://gyazo.com/92f2bf707a163c3cc4cdb4e580005e33
Well, that's because your ViewPager is swipable. It seems that the only solution is to choose either you want your graph to be scrollable or allow swipes for the ViewPager. I've used custom ViewPager with disabled swipes to allow scrolling of the graph. Have a look at it:
_``` import android.content.Context; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.view.MotionEvent;
public class NonSwipeableViewPager extends ViewPager {
public NonSwipeableViewPager(Context context) {
super(context);
}
public NonSwipeableViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
// Never allow swiping to switch between pages
return false;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// Never allow swiping to switch between pages
return false;
}
}
Notice, that it should also be added to your layout as:
`<your.package.name.NonSwipeableViewPager
...
\>`