Android Highcharts DialogFragment
Posted
技术标签:
【中文标题】Android Highcharts DialogFragment【英文标题】: 【发布时间】:2021-02-05 14:07:53 【问题描述】:我不知道这是否可能,但我尝试从 Highchart android API 嵌入 Chartview,以便在 DialogFragment 中显示折线图。不幸的是,我没有成功,任何人都知道这是否可能,也许帮助我做到这一点。 这是我的代码,这是为了获取此对话框片段的测试代码。
ChartDialogFragment.java
public class ChartDialogFragment extends DialogFragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
// Inflate the layout to use as dialog or embedded fragment
View view= inflater.inflate(R.layout.dialog, container, false);
HIChartView chartView =view.findViewById(R.id.hc);
HIOptions options = new HIOptions();
HITitle title = new HITitle();
title.setText("Logarithmic axis demo");
options.setTitle(title);
HIXAxis xaxis = new HIXAxis();
xaxis.setTickInterval(1);
options.setXAxis(new ArrayList<>(Collections.singletonList(xaxis)));
HIYAxis yaxis = new HIYAxis();
yaxis.setType("logarithmic");
yaxis.setMinorTickInterval(0.1);
options.setYAxis(new ArrayList<>(Collections.singletonList(yaxis)));
HITooltip tooltip = new HITooltip();
tooltip.setHeaderFormat("<b>series.name</b><br />");
tooltip.setPointFormat("x = point.x, y = point.y");
options.setTooltip(tooltip);
HILine line1 = new HILine();
line1.setPointStart(1);
line1.setData(new ArrayList<>(Arrays.asList(1, 2, 4, 8, 16, 32, 64, 128, 256, 512)));
options.setSeries(new ArrayList<>(Collections.singletonList(line1)));
chartView.setOptions(options);
return view;
/** The system calls this only when creating the layout in a dialog. */
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
return dialog;
【问题讨论】:
嗨@Neaum,您的问题可能是由于您使用旧的Highcharts Android 版本。一些与动态图表大小相关的问题(例如在 DialogFragment 中)在以后的版本中得到了解决。 您好,好的,谢谢您的回答,我会尝试更新的版本! @ppotaczek 我正在使用新版本,但仍然面临同样的问题我添加了一个新的question 你可以看看吗? 【参考方案1】:这是 dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_
android:layout_>
<ImageView
android:layout_
android:layout_
android:scaleType="center"
android:background="#FFFFBB33"
android:contentDescription="@string/app_name" />
<com.highsoft.highcharts.Core.HIChartView
android:id="@+id/hc"
android:layout_
android:layout_ />
</LinearLayout>
Android 给我这个错误
E/AndroidRuntime: 致命异常: main 进程:com.example.myapplication,PID:25199 android.view.InflateException:com.example.myapplication:layout/dialog 中的二进制 XML 文件第 12 行:二进制 XML 文件第 12 行 com.example.myapplication:layout/dialog: 错误膨胀类 com.highsoft.highcharts.Core.HIChartView 引起:android.view.InflateException:com.example.myapplication:layout/dialog 中的二进制 XML 文件第 12 行:膨胀类错误 com.highsoft.highcharts.Core.HIChartView
如果我放了除 HIChartView 之外的任何其他内容,我的代码就可以工作,所以如果有人知道是否可以嵌入图表,那就太好了。 谢谢
【讨论】:
你成功解决了这个问题吗?以上是关于Android Highcharts DialogFragment的主要内容,如果未能解决你的问题,请参考以下文章
如何在Android上导出Highstock / Highcharts图表?