use*_*455 3 java android android-layout drawerlayout
我正在使用支持库中的Android DrawerLayout来显示幻灯片菜单.我在DrawerLayout菜单中使用单个活动和5-6个片段来显示它们.但是我有一个小问题,"我如何检查当前哪个片段如果用户选择了与已经打开的片段对应的菜单项,则可见.目前它再次创建片段并显示不好的.点击菜单项时触发的功能是:
private void selectItem(int position) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
// Locate Position
switch (position) {
case 0:
ft.replace(R.id.content_frame, fragment1);
break;
case 1:
ft.replace(R.id.content_frame, fragment2);
break;
case 2:
ft.replace(R.id.content_frame, fragment3);
break;
}
ft.commit();
mDrawerList.setItemChecked(position, true);
// Close drawer
mDrawerLayout.closeDrawer(mDrawerList);
}
Run Code Online (Sandbox Code Playgroud)
如何检查所请求的片段是否已经打开,以便不再创建?他们的任何方法是通过FragmentManager检查吗?
我会补充@ Plato的回答.如果您还没有,请检查当前显示的片段问题.
答案说,当您在事务中添加片段时,可以使用标记来表示特定片段.就像是:
ft.replace(android.R.id.content, fragment, "MY_FRAGMENT");
Run Code Online (Sandbox Code Playgroud)
稍后如果要检查该片段是否可见,您可以执行以下操作:
RequestedFragment fragment = (RequestedFragment)getFragmentManager().findFragmentByTag("MY_FRAGMENT"); //"My_FRAGMENT" is its tag
if (fragment.isVisible()) {
// add your code here
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
5828 次 |
| 最近记录: |