我正在尝试将图表添加到我的Xamarin Android应用程序(Visual Studio 2017)我跟随此存储库MicroCharts,Post
我在我的应用程序中使用导航抽屉。所以我正在使用片段来添加我的代码。上面提到的存储库是针对Xamarin.Forms跨平台的。但我只是使用Xamarin.Android。
我有一个Xamarin.Android存储库here。任何帮助将受到高度赞赏。谢谢
你可以参考这个:https://github.com/aloisdeniel/Microcharts
这是一个关于如何在BarChart
中使用Fragment
的简单演示:
首先,将它添加到您的UI
,MGradesView.axml:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<microcharts.droid.ChartView
android:id="@+id/chartView"
android:layout_width="match_parent"
android:layout_height="160dp" />
</LinearLayout>
</ScrollView>
其次,您的图表需要一组数据条目:
var entries = new[]
{
new Entry(200)
{
Label = "January",
ValueLabel = "200",
Color = SKColor.Parse("#266489")
},
new Entry(400)
{
Label = "February",
ValueLabel = "400",
Color = SKColor.Parse("#68B9C0")
},
new Entry(-100)
{
Label = "March",
ValueLabel = "-100",
Color = SKColor.Parse("#90D585")
}
};
第三,从这些条目中实例化图表:
var chart = new BarChart() { Entries = entries };
像这样修改你的MGradeFragment.cs
:
public class MGradeFragment : Fragment
{
public override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
}
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
SetHasOptionsMenu(true);
View view = LayoutInflater.From(Activity).Inflate(Resource.Layout.MGradesView, null);
var entries = new[]
{
new Entry(200)
{
Label = "January",
ValueLabel = "200",
Color = SKColor.Parse("#266489")
},
new Entry(400)
{
Label = "February",
ValueLabel = "400",
Color = SKColor.Parse("#68B9C0")
},
new Entry(-100)
{
Label = "March",
ValueLabel = "-100",
Color = SKColor.Parse("#90D585")
}
};
var chart = new BarChart() { Entries = entries };
var chartView = view.FindViewById<ChartView>(Resource.Id.chartView);
chartView.Chart = chart;
return view;
}
public override void OnCreateOptionsMenu(IMenu menu, MenuInflater inflater)
{
inflater.Inflate(Resource.Menu.menu_MGradeToolbar, menu);
}
}