相关疑难解决方法(0)

如何使用嵌套片段在AndroidPager中添加片段(Android 4.2)

我有ViewPager三个Fragments,每个显示一个List(或Grid).

在新的Android API level 17(Jelly Bean 4.2)中,其中一个功能是嵌套片段.新功能描述说:

如果您使用ViewPager创建左右滑动并占用大部分屏幕空间的片段,则现在可以将片段插入到每个片段页面中.

所以,如果我理解正确的话,现在我可以在里面创建一个ViewPagerwith Fragments(里面有一个按钮),当用户按下按钮时显示另一个Fragment没有松动ViewPager使用这个新功能.

我已经花了我的早上尝试实现这几种不同的方式,但我不能让它工作......有人可以添加一个如何实现这个的简单示例吗?

PS:我只对这种方式感兴趣,getChildFragmentManager学习如何运作.

android android-fragments android-viewpager android-support-library android-nested-fragment

55
推荐指数
3
解决办法
6万
查看次数

片段在 ViewPager 中不可见

我有一个ViewPager我想添加片段的。ViewPager 可以在屏幕上正确查看,但不幸的是它不包含任何内容。

我在一些帖子中看到了替换的建议

getSupportFragmentManager() 
Run Code Online (Sandbox Code Playgroud)

getChildFragmentManager()
Run Code Online (Sandbox Code Playgroud)

但我需要ActionBar. 不幸的ChildFragmentmanager是,在AppCompatActivity.

在调试时,我意识到 Fragment 的onCreateView()方法被调用并返回一个布局。

问题:我怎样才能使Fragments可见?是我的代码与该示例的主要区别什么?

活动:

public class ViewPagerActivity extends AppCompatActivity {

    private ViewPager mViewPager;

    private List<Location> locationList = new ArrayList<>();
    private locationsBaseHandler db;
    private CustomPagerAdapter mAdapter;

    private Location mLocation;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_viewpager);

        locationList.add(someData);

        mViewPager = (ViewPager) findViewById(R.id.viewpager);
        mAdapter  = new CustomPagerAdapter(this, getSupportFragmentManager(), locationList);

        mViewPager.setAdapter(mAdapter);

    }

}
Run Code Online (Sandbox Code Playgroud)

寻呼机适配器:

public class …
Run Code Online (Sandbox Code Playgroud)

android adapter android-fragments android-viewpager

3
推荐指数
1
解决办法
2293
查看次数

ViewPager不显示片段

我无法使它正常工作。基本应用程序可以正常运行,但是其中一个布局文件上的ViewPager根本不显示任何片段。我多次检查代码,但找不到错误。当我尝试调试它时,我注意到它甚至都没有初始化您选择选项卡时应该使用的片段类。我的主要活动:

public class MainActivity extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);

    new GetData(this).execute();

    TabLayout tab_layout = (TabLayout) findViewById(R.id.tab_layout);
    tab_layout.addTab(tab_layout.newTab().setText("CASUAL"));
    tab_layout.addTab(tab_layout.newTab().setText("RANKED"));
    tab_layout.setTabGravity(TabLayout.GRAVITY_FILL);

    final ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
    PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager(), tab_layout.getTabCount());
    viewPager.setAdapter(adapter);
    tab_layout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            viewPager.setCurrentItem(tab.getPosition());
        } …
Run Code Online (Sandbox Code Playgroud)

android android-fragments

2
推荐指数
2
解决办法
2905
查看次数