在抽屉和导航视图中重用工具栏布局

sree_iphonedev

由于我刚接触Android,因此对于使用Android中的布局的标准方法有些困惑。基本上,我是iOS开发人员。我用NavigationDrawerView模板创建了一个新项目。现在,我必须使用导航视图的工具栏和抽屉创建另一个活动。基本上,我想设计一个具有工具栏,抽屉和导航视图的布局,可以仅将其包含在活动中,而可以在新创建的活动中设计内容。谁能建议最好的方法来做到这一点。我希望每个人都知道导航抽屉视图的默认模板设计。因此,我不在此处包含代码。如果有人想看代码,请告诉我。

尼迪潘迪亚

为此,您必须使用以下xml文件:content_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/content_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.android.MainActivity"//you main activity
    tools:showIn="@layout/app_bar_main">

</RelativeLayout>

app_bar_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true"
    android:orientation="vertical">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@drawable/actionbar"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

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

</RelativeLayout>

activity_main:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

    <include
        layout="@layout/app_bar_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@color/navDrawerbg"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/activity_main_drawer" />

</android.support.v4.widget.DrawerLayout>

并制作主要的java文件即 mainactivity extends AppcompatActivity and implements NavigationView.OnNavigationItemSelectedListener

声明全局变量:

private Context mContext;
         private static FragmentManager mManager;
                Fragment fragment = null;

在oncreate之后创建以下方法

private void initUI() {

        if (fragment != null) {

            FragmentManager fragmentManager = getSupportFragmentManager();
            fragmentManager.beginTransaction().replace(R.id.content_main, fragment).commit();

        }

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        getSupportActionBar().setTitle("Home");

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);
}

启动fragmentview

private void initiateFragmentView() {
        if (fragment != null) {
            FragmentManager fragmentManager = getSupportFragmentManager();
            fragmentManager.beginTransaction()
                    .replace(R.id.content_main, fragment).commit();
        }
    }

并在setcontentview()之后在oncreate方法中调用上述方法

 mManager = getSupportFragmentManager();
                fragment = new Home();

                mContext = this;
                initUI();

选择抽屉项目时调用片段

@Override
        public boolean onNavigationItemSelected(MenuItem item) {
            // Handle navigation view item clicks here.
            int id = item.getItemId();

            if (id == R.id.nav_home) {

                 //Your fragment
                fragment = new Home();
                initiateFragmentView();

            } else if (id == R.id.nav_xyz) {

                fragment = new xyz();
                initiateFragmentView();


            } else if (id == R.id.nav_abc) {

                fragment = new abc();
                initiateFragmentView();

            }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            drawer.closeDrawer(GravityCompat.START);
            return true;
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

导航抽屉布局工具栏中的标题未更改

来自分类Dev

如何在带有工具栏和底部导航视图的布局中使用滚动视图?

来自分类Dev

片段和导航抽屉的不同工具栏

来自分类Dev

带有导航栏和工具栏的布局TableView

来自分类Dev

导航抽屉,工具栏和回收站是否都在同一xml布局文件中查看?

来自分类Dev

如何在docusign面对面视图中禁用工具栏?

来自分类Dev

在Android中使用工具栏实施正确的后退导航和主页按钮处理

来自分类Dev

在操作栏/工具栏上展开导航抽屉

来自分类Dev

使用工具栏导航回“父级”活动

来自分类Dev

Android在单个活动中具有导航抽屉和工具栏

来自分类Dev

带有选项卡的导航抽屉和工具栏

来自分类Dev

Android支持库23.2-导航抽屉和/或工具栏

来自分类Dev

Android支持库23.2-导航抽屉和/或工具栏

来自分类Dev

聚合物布局工具栏+核心抽屉面板

来自分类Dev

聚合物布局工具栏+核心抽屉面板

来自分类Dev

如何在Android工具栏下方启动抽屉布局?

来自分类Dev

如何使用工具栏按钮切换抽屉面板的主抽屉

来自分类Dev

即使嵌套滚动视图中没有滚动内容,折叠工具栏布局也会滚动

来自分类Dev

如何将导航抽屉放在工具栏下方?

来自分类Dev

导航抽屉未在工具栏上绘制

来自分类Dev

工具栏隐藏在导航抽屉的后面

来自分类Dev

使用导航抽屉模板更改片段中的工具栏

来自分类Dev

如何在iOS中推送整个视图,包括导航栏和工具栏

来自分类Dev

如何使用工具栏更改工具栏名称和放置图标

来自分类Dev

如何在膨胀视图中显示应用栏和导航抽屉

来自分类Dev

Android Studio在布局预览中不显示状态栏,导航栏和默认工具栏

来自分类Dev

用工具栏替换操作栏

来自分类Dev

工具栏中的这两个图标(抽屉布局和菜单图标)是黑色的,如何将其变成白色?

来自分类Dev

在滚动时隐藏工具栏和抽屉

Related 相关文章

  1. 1

    导航抽屉布局工具栏中的标题未更改

  2. 2

    如何在带有工具栏和底部导航视图的布局中使用滚动视图?

  3. 3

    片段和导航抽屉的不同工具栏

  4. 4

    带有导航栏和工具栏的布局TableView

  5. 5

    导航抽屉,工具栏和回收站是否都在同一xml布局文件中查看?

  6. 6

    如何在docusign面对面视图中禁用工具栏?

  7. 7

    在Android中使用工具栏实施正确的后退导航和主页按钮处理

  8. 8

    在操作栏/工具栏上展开导航抽屉

  9. 9

    使用工具栏导航回“父级”活动

  10. 10

    Android在单个活动中具有导航抽屉和工具栏

  11. 11

    带有选项卡的导航抽屉和工具栏

  12. 12

    Android支持库23.2-导航抽屉和/或工具栏

  13. 13

    Android支持库23.2-导航抽屉和/或工具栏

  14. 14

    聚合物布局工具栏+核心抽屉面板

  15. 15

    聚合物布局工具栏+核心抽屉面板

  16. 16

    如何在Android工具栏下方启动抽屉布局?

  17. 17

    如何使用工具栏按钮切换抽屉面板的主抽屉

  18. 18

    即使嵌套滚动视图中没有滚动内容,折叠工具栏布局也会滚动

  19. 19

    如何将导航抽屉放在工具栏下方?

  20. 20

    导航抽屉未在工具栏上绘制

  21. 21

    工具栏隐藏在导航抽屉的后面

  22. 22

    使用导航抽屉模板更改片段中的工具栏

  23. 23

    如何在iOS中推送整个视图,包括导航栏和工具栏

  24. 24

    如何使用工具栏更改工具栏名称和放置图标

  25. 25

    如何在膨胀视图中显示应用栏和导航抽屉

  26. 26

    Android Studio在布局预览中不显示状态栏,导航栏和默认工具栏

  27. 27

    用工具栏替换操作栏

  28. 28

    工具栏中的这两个图标(抽屉布局和菜单图标)是黑色的,如何将其变成白色?

  29. 29

    在滚动时隐藏工具栏和抽屉

热门标签

归档