处理NavigationDrawer上的单击事件

时间:2013-08-04 12:11:43

标签: android onclick onclicklistener navigation-drawer

通过使用我发现的DrawerLayout,如果没有单击View,则单击Drawer View不会自行处理。抽屉的内容视图将处理该被点击事件。

更具体一点: DrawerLayout有2个子项内容视图和抽屉视图,可以从侧面拉出。

我的内容视图是一个ListView,我的抽屉视图是一个包含Edittext的LinearLayout。抽屉视图设置为填充整个视图。现在单击空白的抽屉视图,因此不会单击EditText,将会显示在底层内容视图中,并且将单击我的ListView项。

防止这种情况的最佳方法是什么?

目前我有这个:

LinearLayout drawerView = (LinearLayout)findViewById(R.id.input_drawer);
drawerView.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // Do nothing just catch the click

    }
});

LinearLayout是抽屉视图的ViewGroup,它以XML格式定义。因为DrawerListener没有针对点击事件的回调,所以我尝试了这个,它可以防止点击底层ListView。但这感觉不太好。


更新:

我怎么说,DrawerView中的LinearLayout高度设置为“match_parent”以填充整个抽屉视图。如果我将高度设置为“wrap_content”,抽屉视图将不会从上部显示边界设置到下边界,这非常难看。因此,未定义抽屉视图来设置整个屏幕高度。

据说,ViewGroup(LinearLayout)负责抽屉视图的高度。如果没有单击ViewGroup中的View,则Drawer View本身根本没有Listener来捕获点击。因此,在这种情况下,我尝试为ViewGroup定义onClickListener是阻止点击内置视图的唯一方法。

如果我错了,因为我肯定会错过一些东西,请纠正我。

0 个答案:

没有答案