Drawerlayout侧滑布局不响应点击事件

秋月夜 2016-03-18 11:57:58
drawerlayout实现的侧滑,侧滑部分不响应点击事件,点击之后只是侧滑栏收进去,button捕获不到点击事件。有碰到过的吗

public class HomeActivity extends ActionBarActivity {

private Toolbar toolbar;
private DrawerLayout mDrawerLayout;
private ActionBarDrawerToggle mDrawerToggle;
private boolean menusState = false;
private Button btn;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setHomeButtonEnabled(true); // 设置返回键可用
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.string.app_name, R.string.app_name) {
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
menusState = true;
}

@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
menusState = false;
}

};
mDrawerLayout.setDrawerListener(mDrawerToggle);
toolbar.setNavigationOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
if (menusState) {
mDrawerLayout.closeDrawer(Gravity.LEFT);
} else {
mDrawerLayout.openDrawer(Gravity.LEFT);
}
}
});
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
Toast.makeText(HomeActivity.this, "11", 1).show();
}
});
}

@Override
protected void onPostCreate(Bundle savedInstanceState) {
mDrawerToggle.syncState();
super.onPostCreate(savedInstanceState);
}

/** 设备配置改变时 */
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mDrawerToggle.onConfigurationChanged(newConfig);
}
...全文
1493 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
TA远方 2017-07-09
  • 打赏
  • 举报
回复
一看到这个答案本人一下就解决了,帮到了我。 看到评论还有问题,原因大致能猜得到,因为这是帧布局,上下层区分的。之前也困了我1小时,没想到会是这样,思路卡住不转弯来,郁闷。
zhangkangbin 2017-04-05
  • 打赏
  • 举报
回复
因为touch事件被拦截了。无法下发。onInterceptTouchEvent
雨过枫吟 2017-03-24
  • 打赏
  • 举报
回复
确实放下面就可以了,不知道原因
KIAE 2016-10-20
  • 打赏
  • 举报
回复
drawerlayout必须放在主界面布局后面,google的api就是这么说的,至于为什么,我也不知道 To use a DrawerLayout, position your primary content view as the first child with a width and height of match_parent. Add drawers as child views after the main content view and set the layout_gravity appropriately. Drawers commonly use match_parent for height with a fixed width.
qq_36457845 2016-10-20
  • 打赏
  • 举报
回复
你好,怎么解决的。我也遇到这个问题了。没看懂你说的放下面,望解答,谢谢
秋月夜 2016-03-18
  • 打赏
  • 举报
回复
解决了,把侧滑布局放下面,就好了,但是还是不知道原因,感觉和事件分发有关系,求大神解答

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧