我为抽屉布局创建自定义布局但是当我关闭抽屉时应用程序滞后。我检查了很多教程和stackoverflow解决方案,但找不到任何一个帮助。 我按照下面的教程,但所有这些都是滞后的。我只是通过导航视图制作一个变化简单的项目,没有其他功能。
https://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/ https://www.simplifiedcoding.net/android-navigation-drawer-example-using-fragments/
任何人都可以给我一个完整的教程吗?你能描述什么是辞职吗?
我的代码:
nev_header.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/black"
android:gravity="bottom"
android:orientation="vertical"
android:paddingTop="25dp">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:src="@drawable/thumb01"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_gravity="center"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:src="@drawable/ic_favourite"
/>
<TextView
android:id="@+id/drawer_My_Favourite"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:onClick="menuclick"
android:paddingLeft="10dp"
android:text=" My Favourite"
android:textColor="@color/white"
android:textSize="@dimen/drawer_menu_text_size"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="45dp"
android:layout_gravity="center"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:src="@drawable/ic_download" />
<TextView
android:id="@+id/OfflineVideo"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:onClick="menuclick"
android:paddingLeft="10dp"
android:text="Offline Videos"
android:textColor="@color/drawer_menu_default_text_color"
android:textSize="@dimen/drawer_menu_text_size" />
</LinearLayout>
</LinearLayout>
menu.xml
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single"
>
<item
android:id="@+id/nav_Home"
android:title=" Home" />
<item
android:id="@+id/nav_Most_Popular"
android:title=" Most Popular" />
<item
android:id="@+id/nav_Movies"
android:title=" Movies" />
<item
android:id="@+id/nav_Dramas"
android:title=" Dramas" />
<item
android:id="@+id/nav_Tv_Show"
android:title=" Tv Show" />
<item
android:id="@+id/nav_Music_Video"
android:title=" Music Video" />
</group>
</menu>
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/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:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"
app:itemBackground="@drawable/nav_state_list"
/>
</android.support.v4.widget.DrawerLayout>
答案 0 :(得分:0)
而不是这样做,您可以直接创建新的导航栏活动,并可以根据您的要求进行编辑。 在Android工作室 点击文件&gt;新&gt;活动&gt;导航抽屉活动 感谢
答案 1 :(得分:0)
我得到了解决方案。 hardwareAccelerated =“true”删除滞后的应用
android:hardwareAccelerated="true"
答案 2 :(得分:0)
在抽屉项目上单击,首先关闭抽屉并将所有其他语句的执行延迟几毫秒。像这样
drawer.close();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//put the statements which are need to be executed after closing drawer.
}
}, 300);