我正在Android Studio中设计本地导航抽屉。 由于它位于活动的左侧,超出了预览范围,因此我在预览中看不到抽屉。 目前,我正在使用testlayout.xml文件来查看我的更改,但很多时候我会忘记将它们复制粘贴到正确的活动中。 有没有一种方法可以预览抽屉布局?
我正在Android Studio中设计本地导航抽屉。 由于它位于活动的左侧,超出了预览范围,因此我在预览中看不到抽屉。 目前,我正在使用testlayout.xml文件来查看我的更改,但很多时候我会忘记将它们复制粘贴到正确的活动中。 有没有一种方法可以预览抽屉布局?
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/left_drawer"
android:layout_width="280dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="@color/nav_drawer_background_color"/>
然后在导航栏中
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- The main content view -->
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
<!-- The navigation drawer -->
<include
android:id="@+id/listView"
layout="@layout/drawer_layout"/>
</android.support.v4.widget.DrawerLayout>
要查看NavigationView预览,请将工具命名空间添加到您的抽屉布局中:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
然后,在您的导航视图布局中添加属性tools:openDrawer,该属性值等于您的导航视图的layout_gravity值,例如:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:openDrawer="left">
<android.support.design.widget.NavigationView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="left"
app:headerLayout="@layout/navigation_header_main"
app:itemTextAppearance="@style/NavigationItemStyleLight"
app:menu="@menu/navigation_main_menu"/>
</android.support.v4.widget.DrawerLayout>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigation_view">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_camera"
android:icon="@drawable/ic_menu_camera"
android:title="Import" />
<item
android:id="@+id/nav_gallery"
android:icon="@drawable/ic_menu_gallery"
android:title="Gallery" />
<item
android:id="@+id/nav_slideshow"
android:icon="@drawable/ic_menu_slideshow"
android:title="Slideshow" />
<item
android:id="@+id/nav_manage"
android:icon="@drawable/ic_menu_manage"
android:title="Tools" />
</group>
<item android:title="Communicate">
<menu>
<item
android:id="@+id/nav_share"
android:icon="@drawable/ic_menu_share"
android:title="Share" />
<item
android:id="@+id/nav_send"
android:icon="@drawable/ic_menu_send"
android:title="Send" />
</menu>
</item>
只需添加
tools:showIn="navigation_view"
你可以使用NavigationView在AndroidStudio上进行预览,它比旧的NavigationDrawer更好、更容易实现。
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<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/prof_app_bar"
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:fitsSystemWindows="true"
app:itemTextColor="@color/text_head_color"
app:itemIconTint="@null"
app:headerLayout="@layout/nav_header_main2"
app:menu="@menu/professional_menu" />
</android.support.v4.widget.DrawerLayout>
在导航栏菜单中定义菜单,并将其放置于菜单资源文件夹中:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single"
android:id="@+id/top_menu">
<item
android:id="@+id/pnav_setting"
android:icon="@drawable/accountsettings"
android:title="@string/paccount_settingss" />
<item
android:id="@+id/pnav_expertise"
android:icon="@drawable/professional"
android:title="@string/pexpertise" />
<item
android:id="@+id/pnav_comu"
android:icon="@drawable/communication"
android:title="@string/pcomunication" />
<item
android:id="@+id/pnav_change_pass"
android:icon="@drawable/changepasswd"
android:title="@string/pchange_pass" />
<item
android:id="@+id/pnav_change_lang"
android:icon="@drawable/changelang"
android:title="@string/pchange_lang"
android:visible="true"/>
</group>
<group android:checkableBehavior="single"
android:id="@+id/middle_menu">
<item
android:id="@+id/pnav_about_us"
android:icon="@drawable/aboutus"
android:title="@string/about_us" />
<item
android:id="@+id/pnav_feedback"
android:icon="@drawable/feedback"
android:title="@string/feedback"
android:visible="false"/>
<item
android:id="@+id/nav_privacy_policy"
android:icon="@drawable/privacy"
android:title="@string/privacy_policy" />
<item
android:id="@+id/pnav_faq"
android:icon="@drawable/faq"
android:visible="false"
android:title="@string/faq" />
<item
android:id="@+id/pnav_contact_us"
android:icon="@drawable/contactus"
android:title="@string/contact_us" />
</group>
<group android:checkableBehavior="single"
android:id="@+id/bottom_menu">
<item
android:id="@+id/pnav_sign_out"
android:icon="@drawable/signout"
android:title="@string/sign_out" />
</group>
</menu>
而要获取点击事件,请使用以下代码:
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(yourItemclickListener);