gpt4 book ai didi

android - 抽屉导航切换 Activity 而不是 fragment

转载 作者:IT王子 更新时间:2023-10-28 23:50:29 26 4
gpt4 key购买 nike

是否可以在 android 中使用抽屉导航,但不是更新 fragment ,我想在 Activity 之间切换作为我在应用程序中的导航方式。

最佳答案

是的,这是可能的 - 这是我为我的应用程序所做的。我已经设置了许多 Activity ,而不是将它们全部转换为 fragment ,我想定制抽屉导航以在所有这些 Activity 中工作。不幸的是,这不是一个快速的解决方法,所以如果你可以选择使用 fragment ,我会同意的。但不管我是怎么做的:

假设我有 2 个 Activity ,我希望这两个 Activity 都有抽屉导航。在每个的 layout.xml 中,我指定了一个带有适当 ListViewDrawerLayout 来保存我的导航选项。本质上,抽屉导航是每次我在 Activity 之间切换时创建的,看起来它是持久的。为了让生活更轻松,我采用了设置抽屉导航所需的常用方法并将它们放在自己的类中:NavigationDrawerSetup.java。这样我的 Activity 就可以使用相同的自定义适配器等。

在这个 NavigationDrawerSetup.java 类中,我有以下内容:

  • configureDrawer() - 这会设置 ActionBarActionBarDrawerToggle,以及所需的监听器
  • 我的自定义数组适配器(用于填充列表中的导航选项)
  • selectOptions() 方法,用于处理抽屉项目的点击

当您在其中一个 Activity 中设置抽屉导航时,您只需创建一个新的 NavigationDrawerSetup 对象并传入所需的布局参数(如 DrawerLayout ListView 等)。然后你会调用 configureDrawer():

        navigationDrawer = new NavigationDrawerSetup(mDrawerView, mDrawerLayout,
mDrawerList, actionBar, mNavOptions, currentActivity);

navigationDrawer.configureDrawer();

currentActivity 被传入,因为抽屉导航与您所在的 Activity 相关联。设置 ActionBarDrawerToggle 时必须使用它:

mDrawerToggle = new ActionBarDrawerToggle(currentActivity, // host Activity
mDrawerLayout, /* DrawerLayout object */
R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */
R.string.drawer_open, /* "open drawer" description for accessibility */
R.string.drawer_close /* "close drawer" description for accessibility */
)

在设置自定义 Adapter 时,您还需要使用 currentActivity:

至于如何通过抽屉导航在 Activity 之间切换,您可以在您的 selectItem() 方法中设置新的 Intent :

private void selectItem(int position) {

// Handle Navigation Options
Intent intent;
switch (position) {
case 0:
intent = new Intent(currentActivity, NewActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
currentActivity.startActivity(intent);
break;
case 1:
// etc.
}

只要确保你的新 Activity 也有抽屉导航设置并且它应该会显示。

您可以做很多事情来根据自己的需要自定义此方法,但这是我这样做的一般结构。希望这会有所帮助!

关于android - 抽屉导航切换 Activity 而不是 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19442378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com