-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
是的,它是被覆蓋的方法 –