所以我的情况是我正确地实现了导航抽屉(可以说,它正确显示并调用了方法(以一种怪异的方式,但会触发)),但是它的行为很怪异,我不知道该怎么做要做,但要问你窥视!
一旦我开始将方法绑定到抽屉的菜单项(选项)上,我就开始注意到奇怪的行为。首先让我用言语解释:
让它成为虚拟菜单:
好吧,您会看到订单的顺序:主页-历史-收藏夹-注销
到目前为止,我已经实现了历史记录并且最喜欢这是我得到的行为:
在发布实现代码之前,还有一件事。 让我们进行2个矿山活动,并进行实时示例(所有示例均在同一目录中)。 1)在首页上,我尝试使用抽屉并调用历史记录/收藏夹,它运行良好,我输入搜索内容,在尝试使用抽屉中调用历史记录/收藏夹的收藏夹中,我按返回主活动(主页),按抽屉打开历史记录/收藏夹和puuf,它不再起作用了...知道连接了还是只是要解决的一个单独问题?
实施:
final NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
// set item as selected to persist highlight
menuItem.setChecked(true);
// close drawer when item is tapped
switch (menuItem.getItemId()) {
case R.id.nav_home: {
if (checkInternetConnection(getApplicationContext())) {
Log.i(LOG_TAG, "PROVJERA NETA POVEZAN");
start_loader();
} else {
mEmptyStateTextView.setText("Cannot connect to network, please check your network status and try again.");
// Clear the adapter of previous earthquake data
}
}
case R.id.nav_history: {
pozoviHistory(null);
}
case R.id.nav_favourite: {
pozoviFavorites();
}
}
mDrawerLayout.closeDrawers();
// Add code here to update the UI based on the item selected
// For example, swap UI fragments here
return true;
}
}
);
mDrawerLayout.addDrawerListener(
new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
// Respond when the drawer's position changes
}
@Override
public void onDrawerOpened(View drawerView) {
// Respond when the drawer is opened
}
@Override
public void onDrawerClosed(View drawerView) {
// Respond when the drawer is closed
navigationView.getMenu().getItem(0).setChecked(true);
}
@Override
public void onDrawerStateChanged(int newState) {
// Respond when the drawer motion state changes
}
}
);
******编辑********
好的,所以从下面的答案中添加中断;解决每种情况下打开所有东西的问题。我设法找到了更多的症状,导致抽屉行事笨拙。
所以我正在做的使抽屉动作愚蠢的动作是: -我的活动有一个使http请求并启动媒体播放器的线程。 -通过听众完成线程后,我将添加媒体播放器 -一旦初始化,我就用代表媒体播放器的某种布局来填充我的布局(这可能是制作抽屉哑巴的问题吗?) -同样从右向左滑动(用于关闭)不起作用,但是单击外部抽屉(在活动布局上)可以正常关闭
这就是我的充气方式:
DrawerLayout myLayout = (DrawerLayout) findViewById(R.id.cili_test);
View itemInfo1 = getLayoutInflater().inflate(R.layout.player2, myLayout, true);
答案 0 :(得分:0)
您需要在交换机的情况下添加break;
赞:
switch (menuItem.getItemId()) {
case R.id.nav_home: {
if (checkInternetConnection(getApplicationContext())) {
Log.i(LOG_TAG, "PROVJERA NETA POVEZAN");
start_loader();
} else {
mEmptyStateTextView.setText("Cannot connect to network, please check your network status and try again.");
// Clear the adapter of previous earthquake data
}
break;
}
case R.id.nav_history: {
pozoviHistory(null);
break;
}
case R.id.nav_favourite: {
pozoviFavorites();
break;
}
}