Android 按下导航抽屉下方的按钮时不工作

Android 按下导航抽屉下方的按钮时不工作,android,android-intent,onclicklistener,navigation-drawer,Android,Android Intent,Onclicklistener,Navigation Drawer,然而,当按钮被放置在层次结构中,以便可以在导航抽屉的顶部看到它时,按钮可以正常工作。但是,当按钮滑出时,应将其隐藏在导航抽屉后面,因此这是不可取的 下面是来自MainActivity.java的代码 public class MainActivity extends ActionBarActivity implements NavigationDrawerCallbacks { public ProgressDialog progBar; public final static boolea

然而,当按钮被放置在层次结构中,以便可以在导航抽屉的顶部看到它时,按钮可以正常工作。但是,当按钮滑出时,应将其隐藏在导航抽屉后面,因此这是不可取的

下面是来自MainActivity.java的代码

public class MainActivity extends ActionBarActivity implements NavigationDrawerCallbacks {

public ProgressDialog progBar;

public final static boolean DEBUG = false;
public final static String TAG = "AppGetter";
private Toolbar mToolbar;
private NavigationDrawerFragment mNavigationDrawerFragment;



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

    mToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
    setSupportActionBar(mToolbar);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setDisplayShowTitleEnabled(false); 

    mNavigationDrawerFragment = (NavigationDrawerFragment) getFragmentManager().findFragmentById(R.id.fragment_drawer);
    mNavigationDrawerFragment.setup(R.id.fragment_drawer, (DrawerLayout) findViewById(R.id.drawer), mToolbar);

    ImageButton cart_button = (ImageButton) findViewById(R.id.button2);
    cart_button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View view) {
            start_request();

        }
    });



}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
public void onNavigationDrawerItemSelected(int position) {
    Toast.makeText(this, "Menu item selected -> " + position, Toast.LENGTH_SHORT).show();
}

@Override
public void onBackPressed() {
    if (mNavigationDrawerFragment.isDrawerOpen())
        mNavigationDrawerFragment.closeDrawer();
    else
        super.onBackPressed();
}


public void start_request()
{
    String pkg = getPackageName();
    Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.setComponent(new ComponentName(pkg,pkg+".RequestActivity"));
    startActivity(intent);

    if(DEBUG)Log.v(TAG,"Intent intent: "+intent);
}
}
我假设问题在上面的类中,但是为了完成,我粘贴了下面两个感兴趣的XML文件

activity_main.xml如您所见,ImageButton当前位于层次结构中导航抽屉的“上方”,以便导航抽屉覆盖它。将ImageButton移动到“下方”可以使按钮正常工作,但会使其显示在导航抽屉的顶部(并且不像布局的其他部分那样着色)


fragment\u navigation\u drawer.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>

<!-- Provides a margin at the top of the navigation drawer. -->
<View
    android:id="@+id/navWhiteSpace1"
    android:layout_width="match_parent"
    android:layout_height="64dp"
    android:background="@color/myNavigationDrawerBackgroundColor"
    />


<android.support.v7.widget.RecyclerView
android:id="@+id/drawerList"
android:layout_below="@+id/navWhiteSpace1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusableInTouchMode="true"
android:scrollbars="vertical"
android:scrollbarDefaultDelayBeforeFade="0"
android:scrollbarFadeDuration="0"
android:overScrollMode="never"
android:focusable="true"
android:background="@color/myNavigationDrawerBackgroundColor"/>

</RelativeLayout>

我在尝试在线学习各种导航抽屉教程时遇到了同样的问题

对我有用的是在GitHub上使用Mike Penz的库。他在页面底部的“自述”文件中有一个非常简单的教程


希望其他对Java有更好理解的人能够解释代码失败的原因。

您能发布您正在使用的xml布局吗?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>

<!-- Provides a margin at the top of the navigation drawer. -->
<View
    android:id="@+id/navWhiteSpace1"
    android:layout_width="match_parent"
    android:layout_height="64dp"
    android:background="@color/myNavigationDrawerBackgroundColor"
    />


<android.support.v7.widget.RecyclerView
android:id="@+id/drawerList"
android:layout_below="@+id/navWhiteSpace1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusableInTouchMode="true"
android:scrollbars="vertical"
android:scrollbarDefaultDelayBeforeFade="0"
android:scrollbarFadeDuration="0"
android:overScrollMode="never"
android:focusable="true"
android:background="@color/myNavigationDrawerBackgroundColor"/>

</RelativeLayout>