如何设置边距或识别标记显示在屏幕右侧还是左侧,导致我标记在屏幕右侧或左侧显示时被切断。
我想像下面的图像,如果我点击左边或右边的值不像上面的图像切断
camsedfj1#
我知道这是一个老问题,但是对于像我这样挣扎的人来说,你可以使用lineChart.setViewPortOffsets(...)方法来处理填充。(记住,你还需要更新图表的边距,这样它就不会缩小)
lineChart.setViewPortOffsets(...)
pes8fvy92#
尝试设置图表类的边距通过使用
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); layoutParams.setMargins(left,top,right,bottom); charId.setLayoutParams(layoutParams); android:layout_marginStart="20dp" android:layout_marginEnd="20dp"
hrysbysz3#
您需要覆盖MarkerView的getOffsetForDrawingAtPoint()并使用chartView.width计算标记位置。您需要在计算前将图表视图设置为MarkerView.chartView。对我很有效-
MarkerView
getOffsetForDrawingAtPoint()
chartView.width
MarkerView.chartView
override fun getOffsetForDrawingAtPoint(posX: Float, posY: Float): MPPointF { if (posX > chartView.width - width) { offset.x = (-width).toFloat() } else { offset.x = (-(width / 2)).toFloat() } offset.y = -(height / 2).toFloat() return offset }
3条答案
按热度按时间camsedfj1#
我知道这是一个老问题,但是对于像我这样挣扎的人来说,你可以使用
lineChart.setViewPortOffsets(...)
方法来处理填充。(记住,你还需要更新图表的边距,这样它就不会缩小)pes8fvy92#
尝试设置图表类的边距
通过使用
hrysbysz3#
您需要覆盖
MarkerView
的getOffsetForDrawingAtPoint()
并使用chartView.width
计算标记位置。您需要在计算前将图表视图设置为MarkerView.chartView
。对我很有效-