【问题标题】:How to redraw/refresh BarChart in Android/Xamarin如何在 Android/Xamarin 中重绘/刷新 BarChart
【发布时间】:2014-08-16 12:09:46
【问题描述】:

在我的应用程序中,我使用 BarChart 库来绘制绘图。我在应用程序操作期间动态创建 BarModels。

这里是负责创建图表的代码

void tworzWykres(int ilosc){

        List<float> listImport = getHistoricalRates (wykresWybor,ilosc);

        if (listImport.Count == 0) {
            Toast.MakeText (this, "Brak notowań dla tej waluty!", ToastLength.Short).Show ();
        }
         else if (ilosc > listImport.Count) {
            Toast.MakeText (this, "Zmniejsz ilość notowań", ToastLength.Short).Show ();
        } else {

            BarModel[] data = new BarModel[listImport.Count];
            for (int i = 0; i < listImport.Count; i++) {
                data [i] = new BarModel() { Value = listImport [i], Legend = daty[i]};
            }
            chart = FindViewById<BarChartView> (Resource.Id.barChart);
            chart.ItemsSource = data;
            chart.Invalidate ();
        }

我在 Click 事件中为我的 Button 调用该方法。 单击按钮后,仅显示网格和轴 - 隐藏条形, 但是当我单击图表区域上的一些编辑文本和键盘重叠时,会出现条形图。 我是Android编程新手,我不知道如何解决这个问题。我希望在单击按钮后立即出现条形图。 我希望你知道如何解决这个问题:)

【问题讨论】:

    标签: android xamarin refresh bar-chart redraw


    【解决方案1】:

    是否有 DataBind 或 Rebind 方法或类似的方法?尝试在设置新项目源后立即调用它们。

    【讨论】:

      【解决方案2】:

      这可能会迟到回应,但即使我在 Graph redraw/refresh 中也遇到了相同的问题,但价值不同。当我遇到问题时重新创建 batChartView 对我有用。

      BarChartView barChart;
      void fnInitializeBarChart()
              {
                  if ( barChart != null )
                  {
                      barChart.BarClick -= fnBarModelClicked; 
                      lyBarChart.RemoveView (barChart);
                      barChart.Dispose ();
                      barChart = null; 
                  } 
                  barChart = barChart ?? new BarChartView (this);
                  barChart.BarOffset = 25f;
                  barChart.BarWidth = 80f;
                  barChart.MinimumValue = 0f;
                  barChart.BarClick += fnBarModelClicked;  
                  lyBarChart.AddView(barChart,new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MatchParent,ViewGroup.LayoutParams.MatchParent));
              }
      

      【讨论】:

        【解决方案3】:

        只需将图表颜色更改为黑色,然后再恢复为原始颜色。刷新图表上的新数据。工作正常。

        chart.BarColor = Android.Graphics.Color.Black;
        
        chart.BarColor = Android.Graphics.Color.Blue;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-01-13
          • 2013-08-30
          • 2011-02-05
          • 2014-04-26
          • 1970-01-01
          • 1970-01-01
          • 2018-02-15
          • 2015-12-18
          相关资源
          最近更新 更多