ViewPager的每个页面中有多个片段

时间:2014-04-29 15:23:09

标签: android android-viewpager fragment

我希望我的应用在ViewPager(每页一个图表)中显示多个图表,并且当我触摸它时每个图表中都有一个按钮,应用程序会显示包含原始数据的表格。

以下是可能情景的示例:

当我滑动时,应用程序显示chart1,它显示chart2。但是当我触摸按钮时,它会显示第一张图表的原始数据。 当应用程序显示原始数据并且我滑动时,它会显示下一个图表的原始数据。每次我都可以回到显示图表。

修改 这是我尝试过的东西(到目前为止我只使用TextView,直到我有一些工作)

它不起作用也没有例外。

public class PageGaucheFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.page_one_layout,container, false);
    v.findViewById(R.id.tv1).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            FragmentTransaction ft = getFragmentManager().beginTransaction();
            ft.replace(R.id.layout_one, RawFragment.newInstance());
            ft.commit();
        }
    });
    return v;
}
}

RawFragment夸大了这种布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/image"
        android:contentDescription="@string/desc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

viewpager.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <com.viewpagerindicator.CirclePageIndicator
        android:id="@+id/indicator"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="10dip" />

</LinearLayout>

FragmentsSliderActivity.java

public class FragmentsSliderActivity extends FragmentActivity {
private PagerAdapter mPagerAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.setContentView(R.layout.viewpager);
    List<Fragment> fragments = new Vector<Fragment>();
    fragments.add(Fragment.instantiate(this,PageGaucheFragment.class.getName()));
    fragments.add(Fragment.instantiate(this,PageMilieuFragment.class.getName()));
    fragments.add(Fragment.instantiate(this,PageDroiteFragment.class.getName()));
    this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
    ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
    pager.setAdapter(this.mPagerAdapter);

    PageIndicator mIndicator = (PageIndicator)findViewById(R.id.indicator);
    mIndicator.setViewPager(pager);
}
}

MyPagerAdapter.java

public class MyPagerAdapter extends FragmentPagerAdapter {
    private final List<Fragment> fragments
    public MyPagerAdapter(FragmentManager fm, List<Fragment> fragments) {
        super(fm);
        this.fragments = fragments;
    }
    @Override
    public Fragment getItem(int position) {
        return this.fragments.get(position);
    }
    @Override
    public int getCount() {
        return this.fragments.size();
    }
}

问候。

0 个答案:

没有答案