gpt4 book ai didi

android - 带 fragment 的导航 View 。工具栏

转载 作者:太空宇宙 更新时间:2023-11-03 13:18:58 26 4
gpt4 key购买 nike

所以,我有一个带有导航 View 的 Activity 。通过点击它的项目,我改变了 Activity 中的 fragment 。所有 fragment 都有相同的工具栏。但是一个有这个工具栏和 TabLayout。我想知道在这样的 Activity 中声明一次工具栏有什么好处

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<include layout="@layout/toolbar" />

<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/toolbar" />

</RelativeLayout>

或者在每个 fragment 中声明它。

第一种方法的缺点是默认的工具栏阴影。当我在 fragment 中添加标签时,阴影看起来像

enter image description here

当我尝试 2 种解决方案时。我所有的工具栏都带有后退图标而不是抽屉动画 Logo 。

谢谢。

最佳答案

我遇到了完全相同的问题。我就是这样解决的:

  • 按照您的建议将工具栏移动到 fragment (这样您就不会用阴影将两者分开)。这也允许以更灵活的方式在您的布局中实现(不同的)工具栏。
  • 用这样的自定义图标替换工具栏的导航图标:

    toolbar.setNavigationIcon(R.drawable.ic_action_menu);

(我使用 Android Asset Studio 轻松创建具有首选颜色的图标)

  • 现在打开带有新菜单(主页)图标的 NavigationView。您可以通过 MainActivity(带有 NavigationView 的)执行此操作。在打开抽屉的 Activity 中创建一个公共(public)方法:

    public void openDrawer(){
    mDrawerLayout.openDrawer(Gravity.LEFT);
    }
  • 现在在您的 fragment 中的 OnOptionsItemSelected 中调用此方法,如下所示:

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    // handle item selection
    switch (item.getItemId()) {
    case android.R.id.home: //Menu icon
    ((MainActivity)getActivity()).openDrawer();
    return true;
    default:
    return super.onOptionsItemSelected(item);
    }
    }

就是这样。当然缺点是必须在每个Fragment中实现Toolbar。但是,这是使您能够在 Fragment 中拥有工具栏 (+TabLayout) 并且仍然能够控制 NavigationView 的唯一方法(据我所知)。

关于android - 带 fragment 的导航 View 。工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31584677/

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