gpt4 book ai didi

android - 在 viewpager 中托管多个 fragment

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:55:46 26 4
gpt4 key购买 nike

对于我的 android 应用程序,我使用的是 viewpager。 viewpager 当前托管一个 fragment 。这在手机上没问题,但在平板电脑上,应该向 viewpager 添加另一个 fragment ,以便填满整个屏幕。

我四处搜索,但找不到任何有关在一个 viewpager 中托管多个 fragment 的信息。这可能吗?

我想要的:

enter image description here

最佳答案

据我了解,您希望在平板电脑模式下的一个页面内有两个 fragment - 目前正在一个接一个地显示。您可以通过覆盖 getPageWidth 轻松地做到这一点方法到 FragmentStatePagerAdapter(或 FragmentPagerAdapter)。此方法可在此处覆盖,因为 FragmentStatePagerAdapter 扩展了 PagerAdapter 并存在于最后一个中。

public class SectionsPagerAdapter extends FragmentStatePagerAdapter {

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

// Overriding the getWidth method
@Override
public float getPageWidth(int position) {
float nbPages;
// Check the device
if(isTablet(getApplicationContext())) {
nbPages = 2; // 2 fragments / pages
} else {
nbPages = 1; // 1 fragment / pages
}
return (1 / nbPages);
}

}

// The isTablet method
public static boolean isTablet(Context context) {
return (context.getResources().getConfiguration().screenLayout
& Configuration.SCREENLAYOUT_SIZE_MASK)
>= Configuration.SCREENLAYOUT_SIZE_LARGE;
}

然后在平板设备上,此适配器在一页中显示两个 fragment ,而在手机设备上,它在一页中仅显示一个 fragment 。测试过,效果不错!

但是,当您说:“应将另一个 fragment 添加到viewpager”时,您的意思可能是在其中动态添加另一个 fragment 。在这种情况下,您应该尝试以下提示:

  • 创建layout-large文件夹
  • 在其中复制您的 Fragment 布局(这是您的 ViewPager 中的一页)
  • 使用 LinearLayout,您可以将右侧设置为另一个 Fragment OR 使用 FrameLayout,感谢getChildFragmentManager(),您可以添加新 fragment 允许您使用 nested fragments 的方法方法。

希望我仔细了解你的问题,这会对你有所帮助。

关于android - 在 viewpager 中托管多个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22831363/

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