我正在使用这个 link 实现滑动菜单.现在,如果我在 onCreate()
方法中使用这段代码,它就可以正常工作了。
我的简单问题是如何在按钮的单击事件上打开 slider ?
我使用了以下代码。
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final SlidingMenu menu = new SlidingMenu(this);
Button mButton = (Button) findViewById(R.id.slidingMenu);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
menu.setMode(SlidingMenu.RIGHT);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
menu.setFadeDegree(0.5f);
menu.attachToActivity(MainActivity.this,
SlidingMenu.SLIDING_CONTENT);
menu.setMenu(R.layout.activity_menu);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
但是当我点击一个按钮时滑动菜单没有被打开。我没有收到任何错误。我该怎么做?
最佳答案
您应该在点击监听器之前设置菜单。在您的代码段中,您每次单击按钮时都会设置并附加菜单。但是,您应该只显示菜单,而不是在点击时附加它。
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final SlidingMenu menu = new SlidingMenu(this);
menu.setMode(SlidingMenu.RIGHT);
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
menu.setFadeDegree(0.5f);
menu.attachToActivity(MainActivity.this, SlidingMenu.SLIDING_CONTENT);
menu.setMenu(R.layout.activity_menu);
Button mButton = (Button) findViewById(R.id.slidingMenu);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
menu.showMenu();
//or
//menu.toggle();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
关于android - 如何在 Button 的点击事件中打开滑动菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22530394/