使用导航抽屉更改其他内容

时间:2014-01-21 06:30:16

标签: android android-activity android-studio android-fragmentactivity navigation-drawer

我使用android studio创建了默认导航抽屉应用程序。

enter image description here

然后我不想用不同的组件创建不同的布局。如何更改与菜单点击相关的内容。

我想在点击导航菜单链接时更改这两个内容。 enter image description here

虚拟内容(!无效:内容体是传出的,不能使用可重复使用的片段)

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你可以将FrameLayout作为容器。在列表项上,单击向容器添加或替换适当的片段。

如果您需要开始一项新活动,您也可以这样做。

您可以按照示例@

http://developer.android.com/training/implementing-navigation/nav-drawer.html

答案 1 :(得分:1)

  

我想用不同的组件创建不同的布局。我怎么能   更改与菜单点击相关的内容。

=>当用户从导航抽屉中选择任何项目时,我完全明白你想要更改内容,即布局(活动)。

如果是这种情况,那么你必须用你想要显示的新片段替换当前片段。

例如:

private class DrawerItemClickListener implements ListView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView parent, View view, int position, long id) {
        selectItem(position);
    }
}

/** Swaps fragments in the main content view */
private void selectItem(int position) {
    // Create a new fragment and specify the planet to show based on position
    Fragment fragment = new PlanetFragment();
    Bundle args = new Bundle();
    args.putInt(PlanetFragment.ARG_PLANET_NUMBER, position);
    fragment.setArguments(args);

    // Insert the fragment by replacing any existing fragment
    FragmentManager fragmentManager = getFragmentManager();
    fragmentManager.beginTransaction()
                   .replace(R.id.content_frame, fragment)
                   .commit();

    // Highlight the selected item, update the title, and close the drawer
    mDrawerList.setItemChecked(position, true);
    setTitle(mPlanetTitles[position]);
    mDrawerLayout.closeDrawer(mDrawerList);
}

@Override
public void setTitle(CharSequence title) {
    mTitle = title;
    getActionBar().setTitle(mTitle);
}

详细示例:http://developer.android.com/training/implementing-navigation/nav-drawer.html