我在那里工作ViewPager和使用Fragment我找到了
在Fragment中的onCreateView()之前调用setUserVisibleHint()
我在Fragment支持库中使用android.support.v4.app.Fragment
这是图书馆的问题吗?
我怎么能摆脱它?
编辑
我重写setUserVisibleHint()而不是调用super来摆脱它.
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
//FIXED: setUserVisibleHint() called before onCreateView() in Fragment causes NullPointerException
//super.setUserVisibleHint(isVisibleToUser);
}
Run Code Online (Sandbox Code Playgroud) 我对这些功能和它们的目的非常困惑.我观察到,使用新的replace()替换现有的片段.我们可以使用addToBackStack(null)将该片段放在后面的堆栈中,这样我们就可以回到之前显示的片段了.现在当一个片段被添加(或替换) - onAttach()- > onCreate()etc ....片段的方法按顺序调用.
现在,当我们remove()从我们的活动中调用片段时,片段的哪些函数被调用以及按什么顺序?
做什么attach()和detach()做什么?是否detach()删除片段?并且这两个时attach()和detach()使用时,该片段的功能调用,并且在该阶ΣΔ
还有什么呢popBackStack()?我的意思是当我们popBackStack()从我们的活动中使用片段时调用哪些函数?
什么时候onDestroy()调用?
谢谢.
我试图检测片段在滑动视图上何时可见,以便在其可见时更新其内容。我是这样做的。
public class MyFragment extends Fragment {
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) { }
else { }
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我转到该页面时,它会很好地工作,但是当我在选项卡中选择该页面时,它会崩溃“尝试调用虚拟方法”。
请帮我,谢谢
我有一个主要活动,然后每个片段都有一个活动。
主要:
public class Principal extends ActionBarActivity implements ActionBar.TabListener {
SectionsPagerAdapter mSectionsPagerAdapter;
/**
* The {@link ViewPager} that will host the section contents.
*/
ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_principal);
// Set up the action bar.
final ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Create the adapter that will return a fragment …Run Code Online (Sandbox Code Playgroud)