为什么我的VerticalViewPager不能与我的Horizo​​ntalViewPager同时工作

时间:2018-01-07 23:16:45

标签: java android android-fragments android-viewpager

enter image description here

所以基本上我试图让这个应用程序拥有所有这些页面,你可以滑动以改变你想要它的页面的方向。我不明白的是,他们不能一起工作,或者当我将它们连接在一起时,应用程序需要被奇怪地滑动。

public class MainActivity extends AppCompatActivity {

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

        //HorizontalViewPagerAdapter
        View background = findViewById(R.id.am_background_view);
        ViewPager viewPager = findViewById(R.id.am_view_pager);
        HorizontalViewPagerAdapter adapter = new HorizontalViewPagerAdapter(getSupportFragmentManager());
        viewPager.setAdapter(adapter);
        viewPager.setCurrentItem(1);
    }
}

这是我的HorizontalViewPager

public class HorizontalViewPagerAdapter extends FragmentPagerAdapter {

    public HorizontalViewPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0:
                return ChatFragment.create();
            case 1:
                return ControllerFragment.create();
            case 2:
                return StoryFragment.create();
        }
        return null;
    }
}

我的ControllerFragment假设让它上下滑动。

public class ControllerFragment extends Fragment {

    public static ControllerFragment create() {
        return new ControllerFragment();
    }

    VerticalViewPager verticalViewPager;
    VerticalViewPagerAdapter verticalPageAdapter;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.vertical, null);
        verticalViewPager = view.findViewById(R.id.am_scrollView);
        verticalPageAdapter = new VerticalViewPagerAdapter(getChildFragmentManager());
        verticalViewPager.setAdapter(verticalPageAdapter);
        return inflater.inflate(R.layout.vertical, null);
    }
}


public class VerticalViewPagerAdapter extends FragmentPagerAdapter {

    public VerticalViewPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case 0:
                return SettingsFragment.create();
            case 1:
                return EmptyFragment.create();
            case 2:
                return ExtrasFragment.create();
        }
        return null;
    }

    @Override
    public int getCount() {
        return 3;
    }
}

我的空片段

public class EmptyFragment extends Fragment {

    public static EmptyFragment create(){
        return new EmptyFragment();
    }
}

我的主要活动

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="c.kristofer.jax2.MainActivity">

    <View
        android:id="@+id/am_background_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/green"/>

    <android.support.v4.view.ViewPager
        android:id="@+id/am_view_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>


</RelativeLayout>

最后我的垂直滚动片段

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="c.kristofer.jax2.MainActivity">

    <me.kaelaela.verticalviewpager.VerticalViewPager
        android:id="@+id/am_scrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</RelativeLayout>

0 个答案:

没有答案