我的Android应用程序按以下方式组织:
FragmentA有一个ListViewFragment并膨胀以下视图:
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/titles"
android:name="br.sachetto.ondepublicar.ListViewFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="false"
android:focusableInTouchMode="false"
android:clickable="false" />
片段B的观点非常相似。
以下代码用于加载FragmentA中的视图:
private static View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (view != null) {
ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null)
parent.removeView(view);
}
else {
view = inflater.inflate(R.layout.list_fragment,
container, false);
}
}
return view;
}
一切正常,直到我从第一个标签(FragmentA)更改为第二个标签(FragmentB)。 此更改后,我的列表视图停止响应单击事件。但是,如果我向下滚动 在列表中它开始再次响应。 如果这个问题可以帮助我吗?
答案 0 :(得分:0)
如果我没弄错的话,你将一个片段膨胀到一个先前(在xml中)被定义为静态/编译时片段的片段。
这种做法是不允许的,可能导致两个碎片相互叠加。我建议你通过代码动态移动或更改所有片段。