内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
如果该活动是以滑动菜单打开的方式启动的,
而不是滑动菜单关闭,如
我试着把toggle()
在活动中却没有用。
SlidingSherlockFragmentActivity
同滑动框架--活性但它扩展了SherlockFragmentActivity,而不是FragmentActivity。
基本活性
public class BaseActivity extends SlidingSherlockFragmentActivity { private int mTitleRes; protected ListFragment mFrag; public BaseActivity(int titleRes) { mTitleRes = titleRes; } private static final String TAG = "BaseActivity"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTitle(mTitleRes); // set the Behind View setBehindContentView(R.layout.menu_frame); FragmentTransaction t = this.getSupportFragmentManager().beginTransaction(); mFrag = new SampleListFragment(); t.replace(R.id.menu_frame, mFrag); t.commit(); // customize the SlidingMenu SlidingMenu sm = getSlidingMenu(); sm.setShadowWidthRes(R.dimen.shadow_width); sm.setShadowDrawable(R.drawable.shadow); sm.setBehindOffsetRes(R.dimen.slidingmenu_offset); sm.setFadeDegree(0.35f); sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); getSupportActionBar().setDisplayHomeAsUpEnabled(true); sm.setOnOpenListener(new SlidingMenu.OnOpenListener() { @Override public void onOpen() { Log.d(TAG, "onOpen"); } }); sm.setOnOpenedListener(new SlidingMenu.OnOpenedListener() { @Override public void onOpened() { Log.d(TAG, "onOpened"); } }); sm.setOnCloseListener(new SlidingMenu.OnCloseListener() { @Override public void onClose() { Log.d(TAG, "onClose"); } }); sm.setOnClosedListener(new SlidingMenu.OnClosedListener() { @Override public void onClosed() { Log.d(TAG, "onClosed"); } }); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: toggle(); return true; } return super.onOptionsItemSelected(item); }
}
翻转检查
public class FlipperCheck extends BaseActivity { private ViewFlipper flipper; private TextView secondaryText; public FlipperCheck() { super(R.string.app_name); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setSlidingActionBarEnabled(true); setContentView(R.layout.main); flipper = (ViewFlipper) findViewById(R.id.voicerecorder_textflipper); flipper.startFlipping(); flipper.setInAnimation(AnimationUtils .loadAnimation(getApplicationContext(), android.R.anim.fade_in)); flipper.setOutAnimation(AnimationUtils .loadAnimation(getApplicationContext(), android.R.anim.fade_out)); secondaryText = (TextView) findViewById(R.id.voicerecorder_secondarytext); secondaryText.setText("Why cannot I see u..."); final TextView firstText = (TextView) findViewById(R.id.firsttext); final TextView secondText = (TextView) findViewById(R.id.secondtext); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { stopFlipper(); flipper.setVisibility(View.INVISIBLE); secondaryText.setVisibility(View.VISIBLE); } }); Button secondButton = (Button) findViewById(R.id.second_button); secondButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { firstText.setText("Replaying"); secondText.setText("Replaying"); } }); } @Override protected void onStart() { super.onStart(); toggle(); } private void stopFlipper() { flipper.getInAnimation().setAnimationListener(new Animation.AnimationListener() { public void onAnimationStart(Animation animation) { } public void onAnimationRepeat(Animation animation) { } public void onAnimationEnd(Animation animation) { int displayedChild = flipper.getDisplayedChild(); int childCount = flipper.getChildCount(); if (displayedChild == childCount - 1) { flipper.stopFlipping(); } } }); } }
toggle()
在onStart()
在显示活动之前激活滑动菜单的开始和关闭。
01-01 19:27:53.780: D/BaseActivity(351): onOpen 01-01 19:27:53.780: D/BaseActivity(351): onOpened 01-01 19:27:53.780: D/BaseActivity(351): onClose 01-01 19:27:53.790: D/BaseActivity(351): onClosed 01-01 19:27:54.241: D/dalvikvm(351): GC_EXTERNAL_ALLOC freed 2725 objects / 223104 bytes in 80ms 01-01 19:27:54.370: D/dalvikvm(351): GC_EXTERNAL_ALLOC freed 290 objects / 12352 bytes in 75ms 01-01 19:27:54.520: I/ActivityManager(59): Displayed activity com.abc.FlipperCheck/.FlipperCheck: 3084 ms (total 3084 ms)
我的问题
在使用Android库“滑动菜单”的同时,如何打开滑动菜单启动一个活动?
您可以使用:
@Override public void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); new Handler().postDelayed(new Runnable() { @Override public void run() { toggle(); } }, 1000); }