-1
我在SDK中有一个包装器应用程序可能在导航抽屉中显示的片段。我想要从碎片本身中检测这个片段何时会被用户看到,用于跟踪目的。有什么办法可以做到吗?检测导航抽屉内部片段的可见性
我在SDK中有一个包装器应用程序可能在导航抽屉中显示的片段。我想要从碎片本身中检测这个片段何时会被用户看到,用于跟踪目的。有什么办法可以做到吗?检测导航抽屉内部片段的可见性
public class MyFragment extends Fragment {
private DrawerLayout mDrawerLayout;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.my_fragment, container, false);
// walk up the view tree and look for the DrawerLayout
for (ViewParent parent = container.getParent(); parent != null; parent = parent.getParent()) {
if (parent instanceof DrawerLayout) {
mDrawerLayout = (DrawerLayout) parent;
mDrawerLayout.setDrawerListener(new DrawerLayout.SimpleDrawerListener() {
@Override
public void onDrawerOpened(View drawerView) {
onShown();
}
@Override
public void onDrawerClosed(View drawerView) {
onHidden();
}
});
break;
}
}
return view;
}
@Override
public void onDestroyView() {
if (mDrawerLayout != null) {
mDrawerLayout.setDrawerListener(null);
}
super.onDestroyView();
}
private void onShown() {
// ...
}
private void onHidden() {
// ...
}
}
而不是使用容器(这是返回null)我用getView内onActivityCreated获得适当的视图层次结构。感谢您的回答。它帮助! – Rahul
使用setUserVisibleHint方法知道你的分片何时对用户可见 –
这是回调吗?我在片段中使用它,但没有收到回调? – Rahul
是的,它是被覆盖的方法 –