Android 在“活动”中禁用滑动菜单
我有一个使用滑动菜单的父类。childs扩展父类在主图标单击时显示滑动菜单 如何在子类中禁用滑动菜单 编码父类:Android 在“活动”中禁用滑动菜单,android,android-ui,sliding,Android,Android Ui,Sliding,我有一个使用滑动菜单的父类。childs扩展父类在主图标单击时显示滑动菜单 如何在子类中禁用滑动菜单 编码父类: public class BCFragmentActivity extends SlidingFragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSuppor
public class BCFragmentActivity extends SlidingFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setSlidingActionBarEnabled(true);
setBehindContentView(R.layout.slide_menu);
getSlidingMenu().setShadowWidthRes(R.dimen.shadow_width);
getSlidingMenu().setShadowDrawable(R.drawable.shadow);
getSlidingMenu().setBehindOffsetRes(R.dimen.actionbar_home_width);
getSlidingMenu().setBehindScrollScale(0.25f);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
toggle();
return true;
}
return super.onOptionsItemSelected(item);
}
}
public class SettingsPagerActivity extends BCFragmentActivity {
private ActionBar actionBar;
private ViewPager settingsPager;
private Tab profilesTab;
private Tab accountsTab;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings_pager);
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
settingsPager = (ViewPager) findViewById(R.id.settingsPage);
settingsPager.setOnPageChangeListener(pageChangeListener);
FragmentManager fm = getSupportFragmentManager();
profilesTab = actionBar.newTab()
.setText("Profile")
.setTabListener(tabListener);
accountsTab = actionBar.newTab()
.setText("Account")
.setTabListener(tabListener);
actionBar.addTab(profilesTab);
actionBar.addTab(accountsTab);
}
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
settingsPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
};
ViewPager.SimpleOnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
actionBar.setSelectedNavigationItem(position);
}
};
}
子类代码:
public class BCFragmentActivity extends SlidingFragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setSlidingActionBarEnabled(true);
setBehindContentView(R.layout.slide_menu);
getSlidingMenu().setShadowWidthRes(R.dimen.shadow_width);
getSlidingMenu().setShadowDrawable(R.drawable.shadow);
getSlidingMenu().setBehindOffsetRes(R.dimen.actionbar_home_width);
getSlidingMenu().setBehindScrollScale(0.25f);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
toggle();
return true;
}
return super.onOptionsItemSelected(item);
}
}
public class SettingsPagerActivity extends BCFragmentActivity {
private ActionBar actionBar;
private ViewPager settingsPager;
private Tab profilesTab;
private Tab accountsTab;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings_pager);
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
settingsPager = (ViewPager) findViewById(R.id.settingsPage);
settingsPager.setOnPageChangeListener(pageChangeListener);
FragmentManager fm = getSupportFragmentManager();
profilesTab = actionBar.newTab()
.setText("Profile")
.setTabListener(tabListener);
accountsTab = actionBar.newTab()
.setText("Account")
.setTabListener(tabListener);
actionBar.addTab(profilesTab);
actionBar.addTab(accountsTab);
}
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
settingsPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
// TODO Auto-generated method stub
}
};
ViewPager.SimpleOnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
actionBar.setSelectedNavigationItem(position);
}
};
}
尝试在子活动中重写onBackPressed()
@Override
public void onBackPressed() {
this.finish();
overridePendingTransition(0, 0);
}
我想不出一种“禁用”它的方法,但是您可以通过调用子类来删除所有功能
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
这将禁用滑动菜单的任何手势检测。如果您有一个操作栏,请在onCreate中执行通常的操作:
actionBar.setDisplayHomeAsUpEnabled(true);
并将其当作没有滑动菜单来处理:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
这个问题解决了吗?这就成功了!要重新启用,请使用SlidingMenu.TOUCHMODE\u边距