切换视图代码

来源:互联网 发布:js点击隐藏显示 编辑:程序博客网 时间:2024/06/18 04:32
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: // Navigate "up" the demo structure to the launchpad activity. // See http://developer.android.com/design/patterns/navigation.html for more. NavUtils.navigateUpTo(this, new Intent(this, MainActivity.class)); return true; case R.id.action_toggle: // 只有两种状态,用boolean类型来标记两种状态 mContentLoaded = !mContentLoaded; showContentOrLoadingIndicator(mContentLoaded); return true; } return super.onOptionsItemSelected(item); } /** * 在两种视图间进行切换 */ private void showContentOrLoadingIndicator(boolean contentLoaded) { // 为showView和hideView定义初始值 final View showView = contentLoaded ? mContentView : mLoadingView; final View hideView = contentLoaded ? mLoadingView : mContentView; // Set the "show" view to 0% opacity but visible, so that it is visible // (but fully transparent) during the animation. showView.setAlpha(0f); showView.setVisibility(View.VISIBLE); // Animate the "show" view to 100% opacity, and clear any animation listener set on // the view. Remember that listeners are not limited to the specific animation // describes in the chained method calls. Listeners are set on the // ViewPropertyAnimator object for the view, which persists across several // animations. showView.animate() .alpha(1f) .setDuration(mShortAnimationDuration) .setListener(null); // Animate the "hide" view to 0% opacity. After the animation ends, set its visibility // to GONE as an optimization step (it won't participate in layout passes, etc.) hideView.animate() .alpha(0f) .setDuration(mShortAnimationDuration) .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { hideView.setVisibility(View.GONE); } }); }