我下面有一个ListView和ViewPager的Activity。最初,我的ViewPager不可见,并在单击切换按钮后变为可见。 ViewPager包含4个选项卡。第一个选项卡包含文本ListView,第二个选项卡包含手机内的所有音乐/ mp3,第三个选项卡显示手机内的所有图像,第四个选项卡显示手机内的所有视频。 我有setOffscreenPageLimit(3)以避免一次又一次地创建视图。
为了避免一次又一次地获取标签的数据,我使用了单件类。
以下是给我文字的课程
public class TextManager {
private static ArrayList<String> text = new ArrayList<>();
private static TextManager instance;
public static TextManager getInstance() {
if(instance == null) {
instance = new TextManager();
}
return instance;
}
public TextManager() {
// get all the texts here
}
public ArrayList<String> getText() {
return text;
}
}
同样是音乐,图像和视频课程。构造函数中只有区别在于从手机获取数据。
当我的活动可见时,ViewPager不可见。 ViewPager的可见性由切换按钮控制。我点击了切换按钮,现在ViewPager变得可见了。 ViewPager第一次变得可见时,它会持续1-2秒。然而,如果我隐藏并一次又一次地显示ViewPager,它就会被隐藏起来,它会立即隐藏并变得可见,这在第一次就不是这样了。
如果我回到之前的活动并参加此活动,第一次仍需要时间,并且在剩下的时间内可以快速显示。
我希望视图即使是第一次即时可见。我怎样才能做到这一点?
答案 0 :(得分:0)
就像你在Frag1,Frag2,Frag3,Frag4等4个片段中有ParentFragment一样
所以,在
Frag1.java extends Fragment
{
onCreate()
{
inflate layout...
}
onStart()
{
new Handler().postdelay(new Runnable() { //same thing for other Fragments
@Override
public void run() {
//all your code will go here
}
}
,0);
}
}
同样对所有其他三个片段做同样的事情,但要确保在onResume()中不应该有任何依赖onStart()的代码。并且所有代码都应该在Handler()中,这样所有四个片段都可以并行执行。