Java 为什么在使用getactivity()查找视图时,有时会跳过在FragmentPagerAdapter中创建的片段?
我正在使用FragmentPagerAdapter创建片段A的多个实例 我尝试了两种在fragement A中查找视图的方法:Java 为什么在使用getactivity()查找视图时,有时会跳过在FragmentPagerAdapter中创建的片段?,java,android,android-fragments,android-viewpager,fragmentpageradapter,Java,Android,Android Fragments,Android Viewpager,Fragmentpageradapter,我正在使用FragmentPagerAdapter创建片段A的多个实例 我尝试了两种在fragement A中查找视图的方法: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment Vie
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v= inflater.inflate(R.layout.fragment_cat_table, container, false);
title = (TextView) v.findViewById(R.id.cat_title);
pagenum = (TextView) v.findViewById(R.id.page_number);
title.setText(catName);
pagenum.setText("page #"+String.valueOf(catIndex));
return v;
}
上述代码工作正常,视图来自充气机。
但第二种方式是:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
title = (TextView) getActivity().findViewById(R.id.cat_title);
pagenum = (TextView) getActivity().findViewById(R.id.page_number);
title.setText(catName);
pagenum.setText("page #"+String.valueOf(catIndex));
}
通过这种方式,我使用getactivity()
查找视图。
奇怪的事情发生了:如果我有两个页面,其中有两个片段A的实例:片段A_0,片段A_1,那么片段A_0将不会显示,片段A_1将显示在页面0中。第1页将包含一个原始片段a:未设置片段中的所有文本视图(title和pagenum)
我很好奇为什么会发生这种事。想了一想后,我明白了。 pageadapter将提前创建片段,以便在片段出现在屏幕上之前调用
onActivityCreated
。因此,如果我在创建的活动中找到视图,它可能会在当前显示的其他页面/片段中找到视图并对其进行修改