我从这里使用了导航滑块菜单代码 - > Android Sliding Menu using Navigation Drawer 但是,当我点击滑动菜单导航图标时,内部很少并改变位置。我需要的是它是恒定的,不应该在导航列表打开时点击它。
答案 0 :(得分:3)
ActionBarDrawerToggle
是造成这种行为的原因。它在它实现为DrawerLayout.DrawerListener
的方法中执行此操作,我们可以覆盖它,而不是调用super
方法。
对于ActionBarDrawerToggle
库中的support-v4
类,我们只需覆盖一个方法:
mDrawerToggle = new ActionBarDrawerToggle(...) {
...
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
// Do not call super.onDrawerSlide(drawerView, slideOffset);
...
}
};
使用appcompat-v7
中的类,我们需要覆盖另外两种方法:
mDrawerToggle = new ActionBarDrawerToggle(...) {
...
@Override
public void onDrawerSlide(View drawerView, float slideOffset){
// Do not call super.onDrawerSlide(drawerView, slideOffset);
...
}
@Override
public void onDrawerClosed(View drawerView) {
// Do not call super.onDrawerClosed(drawerView);
...
}
@Override
public void onDrawerOpened(View drawerView) {
// Do not call super.onDrawerOpened(drawerView);
...
}
};
答案 1 :(得分:0)
根据您的要求,这是隐藏片段的代码,这里lvf是分配给片段的名称。
lvf = new ListViewFragment();
以下是列表视图示例代码
list2.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);
if (lvf.isHidden()) {
ft.show(lvf);
layout.setVisibility(View.VISIBLE);
} else {
ft.hide(lvf);
layout.setVisibility(View.GONE);
}
ft.commit();
}
});