MPAndroidChart 标记在右侧或左侧屏幕中被剪切

问题描述 投票:0回答:4

如何设置边距或识别标记显示在屏幕的右还是左,导致我的标记在显示在屏幕的右或左时被切断。
linechart
如果我单击左侧或右侧的值而不是像上面的图像那样被切断,我想要像下面的图像
enter image description here

android marker mpandroidchart
4个回答
2
投票

我发现这是一个老问题,但对于像我一样苦苦挣扎的人,你可以使用

lineChart.setViewPortOffsets(...)
方法来玩弄填充物。 (请记住,您还需要更新图表的边距,使其不会缩小)


0
投票

尝试为图表类设置边距

通过使用

 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"

0
投票

您需要覆盖

getOffsetForDrawingAtPoint()
MarkerView
并使用
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
}

0
投票

在我的例子中是:首先你只需在 customMarkerView 类中重写 getOffset() 并返回 MPPointF(-(width / 2f), -height.toFloat())

之后,将图表视图设置为MarkerView.chartView。

就我而言是这样的。

val 标记 = CustomMarkerView(requireContext(),R.layout.custom_market_view,dataMarker) 标记.chartView = 绑定.chartDiscover

© www.soinside.com 2019 - 2024. All rights reserved.