我正在努力解决问题:
应用程序启动后,应将TimeChartView滚动(导航)到特定的X轴值。
我正在尝试使用ChartView.scrollTo(X,0)和mChartView.setX(X) 但它的工作方式并不像预期的那样。 它看起来像ChartView在布局中移动而不是滚动。
我的错误在哪里?对于这种情况还有其他更合适的解决方案 这是我的代码:
1)布局
<ScrollView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:fillViewport="true"
android:background="#000000"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:layout_gravity="bottom"
android:gravity="bottom"
android:orientation="horizontal" >
<LinearLayout
android:id="@+id/chartx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FFAA00" <---------- ORANGE PART OF SCREEN, u can see on screenshot
android:gravity="bottom"
android:orientation="horizontal"
android:scrollbars="horizontal" >
</LinearLayout>
</LinearLayout>
</ScrollView>
2)活动
lChart = (LinearLayout) mapV.findViewById(R.id.chartx);
if (mChartView != null) {
lChart.removeView(mChartView);
}
mChartView = ChartFactory.getTimeChartView(mapActivity, mDataset, mRenderer, "dd/MMM/yy");
mChartView.scrollTo(100, 0);
lChart.addView(mChartView, 0, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
mChartView.repaint();
3)数据
for (int i = 0; i < 90; i++) {
c.set(c.MILLISECOND, 0);
c.set(c.SECOND, 0);
c.set(c.MINUTE, 0);
c.set(c.HOUR, 0);
time_series.add(new Date(value + i*cTimeChart.DAY), 0);
}
假设我们正在添加90个值,但我们希望我们的可滚动ChartView将在值45上打开(可见)。
这就是我想要的。
这是我的截图 https://dl.dropboxusercontent.com/u/42675740/Screenshot.png background =“#FFAA00” - 屏幕的橙色部分,看起来像ChartView移动到布局内部。 我期待的是 - 日期应滚动而不是查看移动。
顺便说一句。我正在使用achartengine-1.1.0