1

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

4

1 に答える 1

6

次の呼び出しにより、チャートを無効にすることができます。

mChartView.repaint();

これを試してみることもできます:

mRenderer.setInScroll(true);
于 2012-07-15T21:03:19.973 に答える