ActionBar タブを使用する FragmentActivity があります。タブの 1 つには、一連のチャートを保持するタブ ホストがあります。
このアクティビティは検索によって開始されるため、アクティビティの読み込み中にキーボードが消えます。これにより、最初のタブのグラフが圧縮されて表示されます。これは、アクティビティの最初の読み込み時にのみ発生します。2 回目の検索では、グラフが完全に表示されます。
TabHost アクティビティは次のようになります。
[Activity]
public class MonthlySalesChartView : Activity
{
private CustomerRepository _customerRespository;
private BaseChart _chart;
private string _code;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
_customerRespository = new CustomerRepository();
_chart = BuildChart();
_code = Intent.GetStringExtra("customer_code");
SetContentView(_chart);
}
private BaseChart BuildChart()
{
var data = _customerRespository.GetMonthlySalesData(_code);
var tChart = new BaseChart(ApplicationContext, "Monthly Sales History");
tChart.Axes.Left.Title.Text = "Spend ($)";
tChart.Aspect.View3D = false;
var bar1 = new BaseBar(tChart.Chart) { Title = "Customer Spend" };
bar1.Marks.Visible = false;
var avgLine = new Line(tChart.Chart) { Title = "Average Spend", Dark3D = false, LinePen = { Width = 4 } };
foreach (var month in data.ResultSet.MonthlySales)
{
bar1.Add(month.Value, month.MonthName);
}
avgLine.DataSource = bar1;
avgLine.Function = new Average(true);
avgLine.Depth = 50;
return tChart;
}
}
外観の例