gpt4 book ai didi

ViewPager 内部的 Android ViewPager

转载 作者:行者123 更新时间:2023-11-29 21:02:04 29 4
gpt4 key购买 nike

我目前面临将 ViewPager 放入另一个 ViewPager 中的问题,两者都可滑动。我成功创建了我的第一个 ViewPager,它包含三个页面,中间一个是第二个(内部)ViewPager,其中包含 3 个页面。

| ACTIVITY-1 | VIEWPAGER | ACTIVITY-1 |
| AC1 | AC2 | AC3 |

父 ViewPager 在滑动时工作正常,但内部 ViewPager 无法显示内部 Activity ,因此也不可滑动。

父ViewPager:

public class MainSlider extends ActionBarActivity {

SectionsPagerAdapter mSectionsPagerAdapter;
ViewPager mViewPager;

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

mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);

}

关联的 XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.slidingapp.MainSlider" >

<android.support.v4.view xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>

适配器 ViewPager :

    public class SectionsPagerAdapter extends FragmentPagerAdapter {

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

@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class below).
return PlaceholderFragment.newInstance(position + 1);
}

@Override
public int getCount() {
// Show 3 total pages.
return 3;
}
}

还有 fragment :

   public static class PlaceholderFragment extends Fragment {

private static final String ARG_SECTION_NUMBER = "section_number";

public static PlaceholderFragment newInstance(int sectionNumber) {
PlaceholderFragment fragment = new PlaceholderFragment();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
fragment.setArguments(args);
return fragment;
}

public PlaceholderFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView;
Bundle args = getArguments();

switch (args.getInt(ARG_SECTION_NUMBER)) {
case 1:
rootView = inflater.inflate(R.layout.activity_first_page, container, false);
break;
case 2:
rootView = inflater.inflate(R.layout.activity_second_swap, container, false);
break;
case 3:
rootView = inflater.inflate(R.layout.activity_third_page, container, false);
break;
default:
rootView = inflater.inflate(R.layout.fragment_main_slider, container, false);
break;
}

return rootView;
}
}

子 fragment 的代码与父 fragment 的代码相同,请为子 ViewPager 提供任何解决方案,因为它无法在其中加载任何 Activity 。

最佳答案

在嵌套 viewPager 的情况下,如果您的子 viewpager 不可见或未正确滚动,则使用 getChildFragmentAdapter()

初始化您的子 viewpager(pagerAdaper 类)

关于ViewPager 内部的 Android ViewPager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25785837/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com