当我通过点击Fragment
菜单按钮移动到另一个NavigationDrawer
时我想要的是什么,然后按钮应该被禁用。
因为addToBackStack();
方法在反复单击时多次在其堆栈中添加。因此,当我移动到另一个片段时,想要禁用它。
答案 0 :(得分:1)
要在导航栏使用中禁用切换按钮
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
启用LOCK_MODE_LOCKED_OPEN
替换LOCK_MODE_LOCKED_CLOSED
要停用抽屉项目,请点击
onNavigationItemSelected
中,您检查(id == R.id.whatevertheitemid)
也可以使用布尔值来允许访问例如
if (id == R.id.whatevertheitemid && isAccessGiven) { // do your task
}
答案 1 :(得分:1)
它可以帮助我解决此问题:
@Override
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
if(id==R.id.nav_item1){ //use can write your menu item here
return false;
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
答案 2 :(得分:1)
科特林:
<li class="wc_payment_method payment_method_<?php echo esc_attr( $gateway->id ); ?>">
<input id="payment_method_<?php echo esc_attr( $gateway->id ); ?>" type="radio" class="input-radio" name="payment_method" value="<?php echo esc_attr( $gateway->id ); ?>" <?php checked( $gateway->chosen, true ); ?> data-order_button_text="<?php echo esc_attr( $gateway->order_button_text ); ?>" />
<label for="payment_method_<?php echo esc_attr( $gateway->id ); ?>">
<?php echo $gateway->get_title(); /* phpcs:ignore WordPress.XSS.EscapeOutput.OutputNotEscaped */ ?> <?php echo $gateway->get_icon(); /* phpcs:ignore WordPress.XSS.EscapeOutput.OutputNotEscaped */ ?>
</label>
<?php if ( $gateway->has_fields() || $gateway->get_description() ) : ?>
<div class="payment_box payment_method_<?php echo esc_attr( $gateway->id ); ?>" <?php if ( ! $gateway->chosen ) : /* phpcs:ignore Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace */ ?>style="display:none;"<?php endif; /* phpcs:ignore Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace */ ?>>
<?php $gateway->payment_fields(); ?>
</div>
<?php endif; ?>
这是我的工作,并且抽屉中的禁用项目切换菜单
在Java中:
navigation.menu.findItem(R.id.your_target_item_id).setEnabled(false)
答案 3 :(得分:0)
使用此选项禁用菜单项:
NavigationView navigationView;
navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
现在在菜单项中点击:
Menu menuView= navigationView.getMenu();
menuView.getItem(ID).setEnabled(false);