ViewPagerIndicator のスタイル設定されたタブを使用して ACE グラフを表示しています。最初に表示されたグラフは常に問題ありません。しかし、横にスワイプして 2 ページ目に移動すると、2 番目のグラフが正しく表示されません。ハーフチャートしかありません
フル表示を強制するために ACE を呼び出す前に、ビューやその他のトリックを無効にする方法がわかりません
どんな方向でも大歓迎です
public class Analytics extends FragmentActivity
{
private List<String> pages;
FragmentPagerAdapter mAdapter;
ViewPager mPager;
PageIndicator mIndicator;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// set layout
setContentView(R.layout.analytics);
// set content
pages = new ArrayList<String>();
pages.add("history");
pages.add("category");
pages.add("cost");
// set global objects
mAdapter = new GoogleMusicAdapter(getSupportFragmentManager());
mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
mIndicator = (TabPageIndicator)findViewById(R.id.indicator);
mIndicator.setViewPager(mPager);
}
class GoogleMusicAdapter extends FragmentPagerAdapter
{
public GoogleMusicAdapter(FragmentManager fm)
{
super(fm);
}
@Override
public Fragment getItem(int position)
{
return AnalyticsFragment.newInstance(pages.get(position));
}
@Override
public int getCount()
{
return pages.size();
}
@Override
public CharSequence getPageTitle(int position)
{
return pages.get(position);
}
}
}
コードをまとめたFragmentクラス
public final class AnalyticsFragment extends Fragment
{
private static final String KEY_CONTENT = "TestFragment:Content";
private String content;
public static AnalyticsFragment newInstance(String mContent)
{
AnalyticsFragment fragment = new AnalyticsFragment();
fragment.content = mContent;
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
if ((savedInstanceState != null) && savedInstanceState.containsKey(KEY_CONTENT)) {
content = savedInstanceState.getString(KEY_CONTENT);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
LinearLayout layout = new LinearLayout(getActivity());
Charts chart = new Charts(getActivity());
GraphicalView v;
if ("history".equals(content)) {
v = ChartFactory.getBarChartView(context, dataset, renderer, Type.DEFAULT);
} else {
v = ChartFactory.getPieChartView(context, dataset, renderer);
}
layout.addView(v);
return layout;
}
@Override
public void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
outState.putString(KEY_CONTENT, content);
}
}
バージョン: viewpagerindicator 2.3.1、achartengine 1.0.0
百聞は一見に如かず: https://docs.google.com/open?id=0BxbpQM-2XoKYM1NZYmRLUnY3cWs