- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前我在布局中有一个 Button,但是分配的 OnClickListener 永远不会回调到 onClick 方法。
是否可以在分配给 MarkerView 的布局中拦截 Button 的点击?
最佳答案
我已经完成了带有可点击标记 View 的应用程序。我的解决方案是我们将创建 LineChart(或其他图表)的子类,然后覆盖 onTouchEvent 并检测触摸位置。
public class MyChart extends LineChart {
@Override
public boolean onTouchEvent(MotionEvent event) {
boolean handled = true;
// if there is no marker view or drawing marker is disabled
if (isShowingMarker() && this.getMarker() instanceof ChartInfoMarkerView){
ChartInfoMarkerView markerView = (ChartInfoMarkerView) this.getMarker();
Rect rect = new Rect((int)markerView.drawingPosX,(int)markerView.drawingPosY,(int)markerView.drawingPosX + markerView.getWidth(), (int)markerView.drawingPosY + markerView.getHeight());
if (rect.contains((int) event.getX(),(int) event.getY())) {
// touch on marker -> dispatch touch event in to marker
markerView.dispatchTouchEvent(event);
}else{
handled = super.onTouchEvent(event);
}
}else{
handled = super.onTouchEvent(event);
}
return handled;
}
private boolean isShowingMarker(){
return mMarker != null && isDrawMarkersEnabled() && valuesToHighlight();
}
}
public class ChartInfoMarkerView extends MarkerView {
@BindView(R.id.markerContainerView)
LinearLayout markerContainerView;
protected float drawingPosX;
protected float drawingPosY;
private static final int MAX_CLICK_DURATION = 500;
private long startClickTime;
/**
* The constructor
*
* @param context
* @param layoutResource
*/
public ChartInfoMarkerView(Context context, int layoutResource) {
super(context, layoutResource);
ButterKnife.bind(this);
markerContainerView.setClickable(true);
markerContainerView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d("MARKER","click");
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
startClickTime = Calendar.getInstance().getTimeInMillis();
break;
}
case MotionEvent.ACTION_UP: {
long clickDuration = Calendar.getInstance().getTimeInMillis() - startClickTime;
if(clickDuration < MAX_CLICK_DURATION) {
markerContainerView.performClick();
}
}
}
return super.onTouchEvent(event);
}
@Override
public void draw(Canvas canvas, float posX, float posY) {
super.draw(canvas, posX, posY);
MPPointF offset = getOffsetForDrawingAtPoint(posX, posY);
this.drawingPosX = posX + offset.x;
this.drawingPosY = posY + offset.y;
}
}
关于android - MPAndroidChart - 在 MarkerView 中单击按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37959156/
有没有办法让 MarkerView 固定位置?我需要在 修复它左上或 右上角角落。 最佳答案 这是将标记固定在左上角或右上角的一种方法 创建自定义 MarkerView 后,您可以执行以下操作。 1)
我打算在 MPAndroidChart 的折线图中寻找特定点然后在点击按钮后显示标记以突出显示该点。给出的示例是标记仅在触摸事件后显示,这与我的情况不同。我尝试了下面的代码但无济于事,有人可以教我吗,
我正在使用 MarkerView 类在图表中显示标记 View 。我创建的标记 View 布局包含两个 TextView ,一个在另一个下方。 我面临的问题是图表上最后一个点的标记 View 一半在图
我搜索并搜索了当用户使用 Swift 图表(是 iOS 图表)点击条形图中的条形图时如何显示 MarkerView。 文档指出该库能够使用 MarkerViews“突出显示值(使用可自定义的弹出 Vi
我的应用显示折线图和自定义 MarkerView。 MarkerView 的一个问题是阴影不起作用。相同的代码适用于 Activity 的布局。但是,如果我将其复制到 MarkerView 的布局中,
我在我的应用程序中使用 MPAndroidChart 并为图表创建自定义标记 View (CustomMarkerView)。 当我在 CustomMarkerView 中使用波斯字符时,标题显示为空
我有以下标记 View : public class DiagramLineMarker extends MarkerView { private TextView textViewValue
我正在使用 MPAndroidChart library . 如何自定义 MarkerView 的文本? 我希望在按下栏时显示 markerview,并且 MarkerView 的文本显示我想要的文本
我正在实现 Piechart,我想在切片选择上显示 Markerview,就像在 Barchart 中一样。所以我为 Piechart 设置了一个 Markerview。 mChart = (PieC
目前我在布局中有一个 Button,但是分配的 OnClickListener 永远不会回调到 onClick 方法。 是否可以在分配给 MarkerView 的布局中拦截 Button 的点击? 最
我用 MPAndroidChart 做了条形图.我做了一个自定义标记 View 类来查看条形图的值。 几秒钟后我会删除或隐藏 View 。它应该作为 toast 。但是我做不到。 这首先是一个问题,因
我正在使用 MPandroidchart用于在我的应用程序中显示折线图。我添加了以下代码来显示标记 View ,但它没有显示在 private void initializeChart(LineCha
我正在使用 MPAndroidChart我想用 markerview 显示 xlabes 和 ylabes 的值,我已经显示了 y 轴的值。而且我不知道如何显示 x 轴 (xVals) 的值,你能告诉
我正在使用 iOS 图表添加标记。我只想在值不为零时打开标记。我们可以使用 iOS 图表库来做到这一点吗? 最佳答案 首先设置barChartView的委托(delegate),然后在chartVal
我是一名优秀的程序员,十分优秀!