我正在使用片段状态寻呼机适配器来处理不同片段的创建。
在我的应用程序中,开始标签是用户输入数据的地方,最后一个标签则显示基于开始标签的报告。
问题在于,当我进入“报告”标签时,除以前的标签信息外,所有内容均正确显示。似乎它是在标签可见之前创建的。
有什么方法可以使报告选项卡仅在可见时加载吗?
答案 0 :(得分:0)
我相信您可以覆盖 setUserVisibleHint 方法,以获取有关香气的可见性的通知
https://developer.android.com/reference/android/support/v4/app/Fragment#setuservisiblehint
答案 1 :(得分:0)
OnPageChangeListener myOnPageChangeListener = new OnPageChangeListener(){
@Override public void onPageScrollStateChanged(int state) {
//Called when the scroll state changes.
}
@Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
//This method will be invoked when the current page is scrolled, //either as part of a programmatically initiated smooth scroll //or a user initiated touch scroll.
}
@Override public void onPageSelected(int position) {
//This method will be invoked when a new page becomes selected.
textMsg.append("onPageSelected:" + position + "\n"); }};
现在将此监听器添加到您的viewpager
viewPager.setOnPageChangeListener(myOnPageChangeListener)
答案 2 :(得分:0)
为了更新选项卡,我必须通知数据集已更改为适配器,然后在视图寻呼机上将其重置。
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
if(tab.getPosition() == areas.size()){
roundPagerAdapter.notifyDataSetChanged();
viewPager.setAdapter(null);
viewPager.setAdapter(roundPagerAdapter);
viewPager.setCurrentItem(tab.getPosition());
} else {
viewPager.setCurrentItem(tab.getPosition());
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});