Галерея диаграмм с viewpagerindicator и achartengine

Я отображаю диаграммы ACE, используя стилизованные вкладки ViewPagerIndicator. Первая отображаемая диаграмма всегда в порядке. Но когда вы проводите по горизонтали на второй странице, второй график отображается плохо. У вас есть только половина графика

Я не знаю, как сделать недействительным просмотр или другие трюки перед вызовом 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

1 ответ

Решение

Вы можете сделать диаграмму недействительной, позвонив по телефону:

mChartView.repaint();

Вы также можете попробовать это:

mRenderer.setInScroll(true);
Другие вопросы по тегам