我正在使用这种方法,但它不适用于第一个片段,但在从第二个片段滑动到第一个片段时,它工作良好。请帮我做这件事。谢谢
@Override
public void setUserVisibleHint(boolean isVisibleToUser)
{
super.setUserVisibleHint(isVisibleToUser);
if(isVisibleToUser){ //do Something
}
}
当我在viewPager Fragments上加载数据时,当它们可见时,我遇到了这个问题。为了仅在特定片段可见时加载数据,我依赖于setUserVisibleHint(isVisibleToUser: Boolean),而没有意识到在片段生命周期的哪个点调用它。
结果,我一天两天都不知道,为什么我所有的变量(出现在onCreateView()
中)都是空的。只是在看了一些堆积如山的答案后,我才意识到我犯了一个错误。
setUserVisibleHint()
甚至在调用onCreateView()之前就被调用了。
所以周围的工作是这样的。在这里看到投票最高的答案。这家伙用布尔人做到了。希望它能帮助所有未来的游客,节省他们的时间。
当使用支持版本时,您真的不应该依赖调用setUserVisibleHint的顺序。从文档:
注意:此方法可以在片段生命周期之外调用。因此对于片段生命周期方法调用没有排序保证。
类似的问题也有一些解决方法。
这就是它的工作原理
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
//inflate view layout
view =inflater.inflate(R.layout.your_fragment, container, false);
// return view
return view;
}
用这个
@Override
public void setUserVisibleHint(boolean isUserVisible)
{
super.setUserVisibleHint(isUserVisible);
// when fragment visible to user and view is not null then enter here.
if (isUserVisible && view != null)
{
onResume();
}
}
在简历里放上这段代码
@Override
public void onResume() {
super.onResume();
if (!getUserVisibleHint()) {
return;
}
//do your stuff here
}
我是胡克斯的新手,遇到了一些让我追自己尾巴的案例。 希望有人能解释或提供对我有意义的解决方案: > 下面这个线程:如何调用加载函数与反应使用效果只有一次 我试着在没有依赖性的情况下使用useEffect,eslint不喜欢这样,他们建议添加一个“跳过下一行”,这似乎有点骇人:
在我的应用程序中,我有一个ViewPager,里面有很多可滑动的标签,里面有碎片。我使用方法检测何时出现在屏幕上。当用户在选项卡之间滑动时,这非常有效,但它在第一次加载时不起作用。要运行该方法中的代码,我必须向左滑动,然后返回到第一个,因为方法是在方法之前调用的。 你有任何想法,我如何运行这段代码后,第一个片段是可见的吗?中有方法吗?
我在运行时编译了一个java文件的文件系统,这是一个非常简单的类: } 现在我只想从我的项目中调用res方法(这将是一个jar),但我的代码生成 这就是我加载类的方式:
我正在Java的Android应用程序中工作,其中调用类并在OnCreateView方法中进行测量。然而,一旦完成,我必须自动发送他的测量结果。但我不能。是否有继承自:java.lang.对象android.app.片段的方法,可以在OncreateView进程之后执行函数。因为目前数据已经发送,但还没有时间填充。 谢谢你的帮助
问题内容: 我想我在这里描述的可能有个名字,但我不知道。所以我的第一个问题是要知道这种技术的名称。 这是一个示例:假设您正在网页上实现实时搜索。每次用户在搜索框中键入内容时,您都会触发一个新的搜索查询,并且结果会尽可能频繁地更新。这是一件愚蠢的事情,因为您发送的查询会超出实际需要。每2-3个字母发送一次请求,或者每100 ms最多发送一次请求就足够了。 因此,一种技术是安排在键入键之后立即执行的查