如何将多个ViewPagers添加到Activity的Vertical ScrollView中?

时间:2013-03-20 12:33:55

标签: android android-viewpager scrollview

我正在尝试实现一个包含2个ViewPagers的Activity。每个ViewPager都应该独立滑动。所以我把ScrollView作为我的专利布局,其中有一个LinearLayout作为Chaild。我已将ViewPagers添加到该Linear布局中。但只有第一个ViewPager正在显示,第二个没有显示。我已经为此做了很多工作,尝试了不同的解决方案Here。但没有什么对我有用。 这是我的Xml。

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

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#ffffffff"
    android:orientation="vertical"
    android:weightSum="4">

     <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginBottom="30dip"
        android:text="trying to add First Fragment list"
        android:layout_weight="1" />

    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="fill_parent"
        android:layout_height="200dip"
        android:layout_weight="1" />

     <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="30dip"
        android:text="trying to add second Fragment list"
        android:layout_weight="1" />

    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager1"
        android:layout_width="fill_parent"
        android:layout_height="200dip"
        android:layout_marginTop="30dip"
        android:layout_weight="1" /> 
</LinearLayout>

</ScrollView>

这是我的activity.java

public class MainActivity extends FragmentActivity {

private ViewPager _mViewPager, _mViewPager1;
private ViewPagerAdapter _adapter, _adapter1;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setUpView();
//  setTab();
}

private void setUpView() {
    _mViewPager = (ViewPager) findViewById(R.id.viewPager);
    _adapter = new ViewPagerAdapter(getApplicationContext(),
            getSupportFragmentManager());

    _mViewPager.setAdapter(_adapter);
    _mViewPager.setCurrentItem(0);


    _mViewPager1 = (ViewPager) findViewById(R.id.viewPager1);
    _adapter1 = new ViewPagerAdapter(getApplicationContext(),
            getSupportFragmentManager());
    _mViewPager1.setAdapter(_adapter1);
    _mViewPager1.setCurrentItem(0);
}

private void setTab() {
    _mViewPager.setOnPageChangeListener(new OnPageChangeListener() {

        @Override
        public void onPageScrollStateChanged(int position) {

        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
        }

        @Override
        public void onPageSelected(int position) {
            // TODO Auto-generated method stub
            switch (position) {
            case 0:
                findViewById(R.id.first_tab).setVisibility(View.VISIBLE);
                findViewById(R.id.second_tab).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab1).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab2).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab3).setVisibility(View.INVISIBLE);
                break;

            case 1:
                findViewById(R.id.first_tab).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab).setVisibility(View.VISIBLE);
                findViewById(R.id.second_tab1).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab2).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab3).setVisibility(View.INVISIBLE);
                break;
            case 2:
                findViewById(R.id.first_tab).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab1).setVisibility(View.VISIBLE);
                findViewById(R.id.second_tab2).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab3).setVisibility(View.INVISIBLE);
                break;

            case 3:
                findViewById(R.id.first_tab).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab1).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab2).setVisibility(View.VISIBLE);
                findViewById(R.id.second_tab3).setVisibility(View.INVISIBLE);
                break;
            case 4:
                findViewById(R.id.first_tab).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab1).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab2).setVisibility(View.INVISIBLE);
                findViewById(R.id.second_tab3).setVisibility(View.VISIBLE);

                break;

            }
        }

    });

}

}

这个输出就像下面的截图一样。

enter image description here

不显示第二个View Pager。

如果您有任何解决方案,请帮助我。

0 个答案:

没有答案