带有碎片的Xamarin Android微图

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

我正在尝试将图表添加到我的Xamarin Android应用程序(Visual Studio 2017)我跟随此存储库MicroChartsPost

我在我的应用程序中使用导航抽屉。所以我正在使用片段来添加我的代码。上面提到的存储库是针对Xamarin.Forms跨平台的。但我只是使用Xamarin.Android。

我有一个Xamarin.Android存储库here。任何帮助将受到高度赞赏。谢谢

c# charts xamarin.android visual-studio-2017
1个回答
1
投票

你可以参考这个: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);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.