Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 抽屉布局和侦听器冲突-Android_Java_Android_Android Layout_Listview_Drawerlayout - Fatal编程技术网

Java 抽屉布局和侦听器冲突-Android

Java 抽屉布局和侦听器冲突-Android,java,android,android-layout,listview,drawerlayout,Java,Android,Android Layout,Listview,Drawerlayout,当我更改布局Xml中列表视图和抽屉布局(具有导航菜单)的顺序时 案例1:如果ListView位于顶部:则导航菜单会过度显示它。 案例2:如果抽屉布局在顶部:则MClicklistner不起作用 Main.xml <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/a

当我更改布局Xml中
列表视图
抽屉布局
(具有导航菜单)的顺序时
案例1:如果
ListView
位于顶部:则导航菜单会过度显示它。
案例2:如果抽屉布局在顶部:则MClicklistner不起作用

Main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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="match_parent"
    tools:context=".ShopkeeperMainActivity"
    android:descendantFocusability="blocksDescendants" >


    <ListView
        android:id="@+id/listview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scrollbars="vertical"
        android:visibility="visible"></ListView>


    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:alwaysDrawnWithCache="false"
        android:animateLayoutChanges="?android:attr/windowSwipeToDismiss"
        android:clipChildren="false"
        android:fadingEdge="none|horizontal|vertical"
        android:fitsSystemWindows="false"
        android:visibility="visible"
        android:clickable="false"
        android:focusable="false"
        android:focusableInTouchMode="false">


        <android.support.design.widget.NavigationView
            android:id="@+id/navigation_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:headerLayout="@layout/navigation_menu_header"
            app:menu="@menu/navigation_menu_shopkeper"></android.support.design.widget.NavigationView>


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

</android.support.constraint.ConstraintLayout>
在案例1中,我尝试了以下方法:

   @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        if(drawer_btn_count_flag==100)
            drawer_btn_count_flag = 2; // reset back 2 

        if(drawer_btn_count_flag%2==0) {
             listView.setVisibility(View.INVISIBLE);
            drawer_btn_count_flag++;
        }
        else {
            listView.setVisibility(View.VISIBLE); // back vivisble
            drawer_btn_count_flag++;
        }

但在导航菜单隐藏之前,它会使
listview
项可见。这看起来很尴尬

像这样使用。。。。。它成功了+1。对此的任何解释都将不胜感激。
   @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        if(drawer_btn_count_flag==100)
            drawer_btn_count_flag = 2; // reset back 2 

        if(drawer_btn_count_flag%2==0) {
             listView.setVisibility(View.INVISIBLE);
            drawer_btn_count_flag++;
        }
        else {
            listView.setVisibility(View.VISIBLE); // back vivisble
            drawer_btn_count_flag++;
        }