关键词:
【中文标题】ViewPager 问题中的片段【英文标题】:Fragments inside ViewPager issue 【发布时间】:2015-10-04 02:10:20 【问题描述】:ViewPager
中有 3 个片段。对于每个Fragment
,我设置了不同的NavigationBar
颜色(以编程方式)。这是代码。
@Override
public void init(Bundle arg0)
// TODO Auto-generated method stub
addSlide(new Fragment1());
addSlide(new Fragment2());
addSlide(new Fragment3());
private class Fragment1 extends Fragment
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
getWindow().setNavigationBarColor(Color.parseColor(BLUE));
Log.e("test", "1");
return inflater.inflate(R.layout.layout_intro, container, false);
private class Fragment2 extends Fragment
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
getWindow().setNavigationBarColor(Color.parseColor(RED));
Log.e("test", "2");
return inflater.inflate(R.layout.layout_intro_2, container, false);
private class Fragment3 extends Fragment
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
getWindow().setNavigationBarColor(Color.parseColor(GREEN));
Log.e("test", "3");
return inflater.inflate(R.layout.layout_intro_3, container, false);
在Logcat
中,我看到了错误的数字。例如,我在第一个 Fragment
中,我看到绿色 NavigationBar
和“2”。为什么?我该如何解决?
【问题讨论】:
【参考方案1】:发生这种情况是因为ViewPager
已经加载了下一个片段,因此如果您在片段一上,则片段 2 已经创建,如果您滑动到片段 2,将创建片段 3。这就是滑动流畅的原因。
您需要将 onPageChangeListener 添加到您的ViewPager
中,如下所示:
mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener()
@Override
public void onPageSelected(int position)
switch(position)
case 1: if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
getWindow().setNavigationBarColor(Color.parseColor(BLUE));
break;
case 2: if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
getWindow().setNavigationBarColor(Color.parseColor(RED));
break;
case 3: if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
getWindow().setNavigationBarColor(Color.parseColor(GREEN));
break;
@Override
public void onPageScrolled(int position, float offset, int offsetPixel)
@Override
public void onPageScrollStateChanged(int state)
);
等等。
【讨论】:
ViewPager 中的片段被重新创建
】ViewPager中的片段被重新创建【英文标题】:FragmentsinViewPagergetrecreated【发布时间】:2013-02-2104:28:00【问题描述】:我有一个带有容器的FragmentActivity,我将Fragment和ViewPager放在其中。在ViewPager我有3个Fragments:[MainActivity][ViewPagerFra... 查看详情
带有 SlidingTabLayout 的 ViewPager 中的 Listview - 高度问题
】带有SlidingTabLayout的ViewPager中的Listview-高度问题【英文标题】:ListviewinsideaViewPagerwithSlidingTabLayout-Heightproblems【发布时间】:2016-04-2609:37:35【问题描述】:我有一个片段,我在其中托管了一个带有TabLayout的ViewPager,ViewPager的内容... 查看详情
替换 Viewpager 中的片段 [重复]
】替换Viewpager中的片段[重复]【英文标题】:replacefragmentinsideViewpager[duplicate]【发布时间】:2016-03-0222:21:33【问题描述】:我有一个带有三个片段的ViewPager,我想用另一个片段替换第三个片段,我检查了关于它的帖子,但没有任... 查看详情
带有 SlidingMenu 的片段中的 ViewPager
】带有SlidingMenu的片段中的ViewPager【英文标题】:ViewPagerinFragmentwithSlidingMenu【发布时间】:2012-12-0921:29:32【问题描述】:我想知道一般方法是如何在SlidingMenu的帮助下在Fragment中显示ViewPager:https://github.com/jfeinstein10/SlidingMenu有两... 查看详情
底部导航片段中的 Viewpager2
】底部导航片段中的Viewpager2【英文标题】:Viewpager2inFragmentofBottomNavigation【发布时间】:2020-11-0803:02:59【问题描述】:我在底部导航中有2个Fragment、Frag1和Frag2,在Frag1中我通过viewmodel(MVVM)实现了改造,当我尝试通过viewpager2中的... 查看详情
从 ViewPager 中检索片段
】从ViewPager中检索片段【英文标题】:RetrieveaFragmentfromaViewPager【发布时间】:2012-02-0519:10:35【问题描述】:我使用ViewPager和FragmentStatePagerAdapter来托管三个不同的片段:[片段1][片段2][片段3]当我想从FragmentActivity中的ViewPager获取Fra... 查看详情
viewpager中的fragmentpageradapter,fragmentstatepageradapter(代码片段)
在开发中ViewPager+fragment,包括缓存pager或者fragment中一些问题,什么时候该缓存销毁page,什么时候缓存销毁fragment问题FragmentPagerAdapter,FragmentStatePagerAdapter的区别和适用场景FragmentPagerAdapter1、通过offscreenPageLimi 查看详情
替换 Viewpager 中的片段/选项卡
】替换Viewpager中的片段/选项卡【英文标题】:ReplacingaFragment/TabinaViewpager【发布时间】:2012-04-1609:32:53【问题描述】:我目前正在尝试为我未来的应用程序制作框架。我真的很喜欢ActionBar和ViewPager,但错过了一个功能。我需要在... 查看详情
viewpager 中的片段,未找到视图错误
】viewpager中的片段,未找到视图错误【英文标题】:fragmentsinviewpager,noviewfounderror【发布时间】:2015-05-0516:07:03【问题描述】:我有一个活动持有一个片段,在这个片段中有一个按钮,当它被点击时,会弹出一个对话框。在这个... 查看详情
无法从 ViewPager 中的另一个片段刷新/更新片段中的列表视图
】无法从ViewPager中的另一个片段刷新/更新片段中的列表视图【英文标题】:Cannotrefresh/updatelistviewinafragmentfromanotherfragmentinViewPager【发布时间】:2013-04-1511:52:26【问题描述】:我很难弄清楚接下来的事情。我有什么:我有一个浏... 查看详情
带有导航抽屉的片段中的 ListView 和 ViewPager
】带有导航抽屉的片段中的ListView和ViewPager【英文标题】:ListViewandViewPagerwithinFragmentwithNavigationDrawer【发布时间】:2015-04-2620:25:36【问题描述】:我正在尝试将这两个功能都实现到片段中,但到目前为止还没有成功。它在ListView... 查看详情
ViewPager2 中的片段在返回父片段时被重新创建
】ViewPager2中的片段在返回父片段时被重新创建【英文标题】:fragmentsinsideViewPager2arerecreatedwhencomingbacktoparentfragment【发布时间】:2021-05-1204:56:09【问题描述】:我的一个片段中有一个ViewPager2(我们称之为片段A)。viewpager使用Fragm... 查看详情
ViewPager 中的片段在 getView() 中返回 null
】ViewPager中的片段在getView()中返回null【英文标题】:FragmentinsideViewPagerreturningnullingetView()【发布时间】:2013-10-0702:33:49【问题描述】:在我的应用程序中,我有一个ViewPager,在该ViewPager中大约有17个片段。我已经为纵向和横向设... 查看详情
Actionbar 选项卡和 ViewPager 中的片段
】Actionbar选项卡和ViewPager中的片段【英文标题】:FragmentinActionbarTabandViewPager【发布时间】:2011-12-2402:44:53【问题描述】:是否可以在平板电脑的操作栏选项卡和手机的ViewPager中使用Fragment?手机似乎使用了支持库,并且与操作栏... 查看详情
ViewPager 中的片段没有与之关联的活动
】ViewPager中的片段没有与之关联的活动【英文标题】:FragmentinsideaViewPagerdoesnothavetheactivityassociatedwithit【发布时间】:2020-04-2012:22:05【问题描述】:我有一个使用ViewPager和TabLayout的用例。我用过Android教程linkedhere。我的布局<?xml... 查看详情
片段转换的 ViewPager 和 RecyclerView 问题
】片段转换的ViewPager和RecyclerView问题【英文标题】:ViewPagerandRecyclerViewissuewithfragmenttransition【发布时间】:2021-03-0420:36:57【问题描述】:设置是这样的:带有nav_graph的单个活动应用(MainActivity)HomeFragment有viewPager2和3个子片段这3个... 查看详情
我在 viewpager 选项卡中的片段不刷新
】我在viewpager选项卡中的片段不刷新【英文标题】:Myfragmentsinviewpagertabdontrefresh【发布时间】:2013-01-2405:56:59【问题描述】:我有4个标签的viewpager..在每个标签中都有一个片段。我的第一个选项卡是一个带有表单的片段(例如用... 查看详情
viewpager 中的剪辑布局
】viewpager中的剪辑布局【英文标题】:Cliplayoutinviewpager【发布时间】:2015-08-1710:48:40【问题描述】:viewPager没什么问题。我有显示RoundedImageView的4个片段的ViewPager。RoundedImageView有一个圆角。当我从右向左滑动时,角落没有变圆。... 查看详情