GraphView icon indicating copy to clipboard operation
GraphView copied to clipboard

Conflic with viewpager

Open angpysha opened this issue 7 years ago • 3 comments

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 {
    }`

angpysha avatar Jan 10 '18 23:01 angpysha

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.

Yvtq8K3n avatar Jan 30 '18 23:01 Yvtq8K3n

When I try to scroll graph, viewpager scrolls. https://gyazo.com/92f2bf707a163c3cc4cdb4e580005e33

angpysha avatar Jan 31 '18 09:01 angpysha

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
   ...
\>`

bajnax avatar Apr 11 '18 14:04 bajnax