如何在底部导航视图中打开导航视图?

时间:2018-05-15 07:50:58

标签: java android devexpress

我想在底部导航时打开导航视图,但我不知道怎么做。我在下面设置图像看起来我不想在底部导航后面导航但我不认为应该自定义导航视图和用它代替android导航视图 这是我的activity_main.xml

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:layoutDirection="rtl"
tools:openDrawer="start">
    <android.support.design.widget.CoordinatorLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <android.support.design.widget.AppBarLayout
            android:id="@+id/appbar"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                />
        </android.support.design.widget.AppBarLayout>
    </android.support.design.widget.CoordinatorLayout>
    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_marginTop="?attr/actionBarSize"
        android:layout_marginBottom="?attr/actionBarSize"
        android:layout_height="wrap_content"
        app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior">

        <FrameLayout
            android:id="@+id/frame_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </android.support.v4.widget.NestedScrollView>

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="260dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        android:background="@color/white"
        app:itemIconTint="@color/darkGray"
        app:headerLayout="@layout/layout_navigation_header"
        app:itemTextColor="@color/darkGray"/>

</android.support.v4.widget.DrawerLayout>
<com.aurelhubert.ahbottomnavigation.AHBottomNavigation
    android:id="@+id/bottomNavigation_main"
    android:layout_gravity="bottom"
    android:layout_alignParentBottom="true"
    android:layoutDirection="rtl"
    android:background="@color/colorPrimary"
    android:fitsSystemWindows="false"
    android:layout_width="match_parent"
    app:itemIconTint="@color/navigation_item_color"
    app:itemTextColor="@color/navigation_item_color"
    android:layout_height="wrap_content" />

这是我的MainActivity.java

  public class MainActivity extends AppCompatActivity {
    DrawerLayout drawerLayout;
    FrameLayout frameLayout;
    AHBottomNavigation bottomNavigationView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setupToolbar();
        setupBottomNavigation();
    }

    private void setupToolbar() {
        drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        ActionBar actionBar = getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setHomeButtonEnabled(true);
        getSupportActionBar().setDisplayShowTitleEnabled(false);

        ActionBarDrawerToggle drawerToggle = new ActionBarDrawerToggle(this,
                drawerLayout, toolbar, 0, 0);

        drawerLayout.addDrawerListener(drawerToggle);
        drawerToggle.syncState();
    }
    private void setupBottomNavigation() {
        frameLayout = (FrameLayout) findViewById(R.id.frame_layout);
        bottomNavigationView = (AHBottomNavigation) findViewById(R.id.bottomNavigation_main);


        AHBottomNavigationItem item1 = new AHBottomNavigationItem(R.string.bottom_navigation_home, R.drawable.ic_home, R.color.navigation_item_color);
        AHBottomNavigationItem item2 = new AHBottomNavigationItem(R.string.bottom_navigation_message, R.drawable.ic_home, R.color.navigation_item_color);
        AHBottomNavigationItem item3 = new AHBottomNavigationItem(R.string.bottom_navigation_Accounting, R.drawable.ic_home, R.color.navigation_item_color);
        AHBottomNavigationItem item4 = new AHBottomNavigationItem(R.string.bottom_navigation_archive, R.drawable.ic_home, R.color.navigation_item_color);


        bottomNavigationView.addItem(item1);
        bottomNavigationView.addItem(item2);
        bottomNavigationView.addItem(item3);
        bottomNavigationView.addItem(item4);

        bottomNavigationView.setCurrentItem(0, true);

        bottomNavigationView.setDefaultBackgroundColor(getResources().getColor(R.color.colorPrimary));

        bottomNavigationView.setAccentColor(Color.parseColor("#fdfdfe"));
        bottomNavigationView.setInactiveColor(Color.parseColor("#bdbdbd"));

        bottomNavigationView.setTitleState(AHBottomNavigation.TitleState.ALWAYS_SHOW);


        bottomNavigationView.setOnTabSelectedListener(new AHBottomNavigation.OnTabSelectedListener() {
            @Override
            public boolean onTabSelected(int position, boolean wasSelected) {
                FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

                switch (position) {
                    case 0:
                        //transaction.replace(R.id.frameLayout_main, new Fragment_home());
                        drawerLayout.closeDrawers();
                        break;
                    case 1:
                        //transaction.replace(R.id.frameLayout_main, new Fragment_Message());
                        drawerLayout.closeDrawers();
                        break;
                    case 2:
                        //transaction.replace(R.id.frameLayout_main, new Fragment_Message());
                        drawerLayout.closeDrawers();
                        break;
                    case 3:
                       // transaction.replace(R.id.frameLayout_main, new Fragment_Message());
                        drawerLayout.closeDrawers();
                        break;
                }
                transaction.commit();
                return true;
            }

        });


    }

}

我想将导航放在底部导航前面

enter image description here

1 个答案:

答案 0 :(得分:0)

  findViewById(R.id.drawer_button).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // open right drawer
            DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            drawer.openDrawer(GravityCompat.END);
        }
    });

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

以下是完整的参考资料

https://v4all123.blogspot.in/2016/03/simple-example-of-navigation-view-on.html