如何创建Android Activity Navigation?

时间:2014-11-11 06:11:22

标签: android android-intent

我想创建按钮单击以将一个活动导航到另一个活动屏幕,看起来像iPhone导航。下面我添加了另一个活动调用代码,但如果我使用此代码,我可以使用弹出选项调用另一个活动。我需要从右到左导航第二个活动页面后退按钮...

Intent intent = new Intent(AppMainActivity.this, ForgotPasswordActivity.class);
                AppMainActivity.this.startActivity(intent);  

enter image description here

3 个答案:

答案 0 :(得分:0)

如果我理解正确,你可以使用动画,也许本教程是你的朋友

http://www.christianpeeters.com/android-tutorials/tutorial-activity-slide-animation/

抱歉,我不熟悉堆栈溢出时正确格式化链接。允许它像这样直接发布链接..

在从左到右滑动的活动中,我会放置一个带有反向动画的后退按钮'''''''它只是从右向左滑回你开始的活动。希望它有所帮助..

<强>更新

关于你在下面的评论中的第二个问题:

只需在动画订阅器中创建另外两个XML文件,并将它们称为animation3.xml animation4.xml: animation3包括:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="-100%p"
android:toXDelta=" 0%p"
android:duration="500">
</translate>

animation4:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta=" 0%p"
android:toXDelta=" 50%p"
android:duration="500">
</translate>

并在onCLick-Back-button方法中调用这些XML文件,就像之前滑动到nex活动一样! ; - )

了解以下内容非常重要:

来自XDelta的

表示X轴上的偏移量,以厘米为单位。示例:100%p表示视图完全偏离视线(对于您的眼睛,因为实际上,动画只是一个幻觉,它并没有真正滑出)。示例2:50%p意味着它向右滑动一半,因此屏幕右侧可以看到50%的视图。

toXDelta 表示您想要滑动的位置(方向)以及您想要滑动的距离

持续时间让您有权决定动画应该花多长时间才能完成。持续时间以毫秒为单位。

所以现在你更灵活地使用转换。

英语不是我的母语,但我会尽力向你说清楚。我希望它可以帮助你。

答案 1 :(得分:0)

此代码适用于您:

Intent intent = new Intent(AppMainActivity.this, ForgotPasswordActivity.class);
startActivity(intent); 
overridePendingTransition(R.anim.enterAnimation, R.anim.exitAnimation);

您需要overridePendingTransition()方法,因为这将处理活动之间的过渡动​​画。只需创建一个动画xml并将其保存在您的资源中。以下是动画的一些示例。

enter_from_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
 android:shareInterpolator="false">
 <translate 
  android:fromXDelta="-100%" android:toXDelta="0%"
  android:fromYDelta="0%" android:toYDelta="0%"
  android:duration="700"/>
</set>

enter_from_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
 android:shareInterpolator="false">
 <translate
 android:fromXDelta="100%" android:toXDelta="0%"
 android:fromYDelta="0%" android:toYDelta="0%"
 android:duration="700" />
</set>

exit_to_left.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
 android:shareInterpolator="false">
 <translate 
  android:fromXDelta="0%" android:toXDelta="-100%"
  android:fromYDelta="0%" android:toYDelta="0%"
  android:duration="700"/>
</set>

exit_to_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
 android:shareInterpolator="false">
<translate
 android:fromXDelta="0%" android:toXDelta="100%"
 android:fromYDelta="0%" android:toYDelta="0%"
 android:duration="700" />
</set>

答案 2 :(得分:0)

我的例子在这里。添加后活动会滑入,点击后会滑出:

  1. slide_in_left.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android" >
    
     <translate
          android:duration="@android:integer/config_mediumAnimTime"
          android:fromXDelta="-100%p"
          android:toXDelta="0%p" />
    
     <alpha
         android:duration="@android:integer/config_mediumAnimTime"
         android:fromAlpha="0"
          android:toAlpha="1" />
    
     </set>
    
  2. slide_out_right.xml

       <?xml version="1.0" encoding="utf-8"?>
       <set xmlns:android="http://schemas.android.com/apk/res/android" >
    
      <translate
    android:duration="@android:integer/config_mediumAnimTime"
    android:fromXDelta="0%p"
    android:toXDelta="100%p" />
    
     <alpha
    android:duration="@android:integer/config_mediumAnimTime"
    android:fromAlpha="1"
    android:toAlpha="0" />
    
    1. slide_in_right.xml

         <?xml version="1.0" encoding="utf-8"?>
         <set xmlns:android="http://schemas.android.com/apk/res/android">
         <translate android:fromXDelta="100%p" android:toXDelta="0%p"
          android:duration="@android:integer/config_mediumAnimTime"/>
         <alpha android:fromAlpha="0.0" android:toAlpha="1" 
          android:duration="@android:integer/config_mediumAnimTime"/>
      
       </set>
      
    2. slide_out_left.xml

       <?xml version="1.0" encoding="utf-8"?>
       <set  xmlns:android="http://schemas.android.com/apk/res/android">
         <translate android:fromXDelta="0%p" android:toXDelta="-100%p"
          android:duration="@android:integer/config_mediumAnimTime"/>
         <alpha android:fromAlpha="1" android:toAlpha="0.0" 
          android:duration="@android:integer/config_mediumAnimTime"/>
      
      </set>
      
    3. 在活动中:

      public class ThirdActivity extends Activity implements OnClickListener{
      
          static int count = 0;
      
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
      
              setContentView(R.layout.sample_activity);
              Button button = (Button) findViewById(R.id.button);
              button.setOnClickListener(this);
              button.setText("" + count++);
              overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);
          }
      
          @Override
          public void onClick(View arg0) {
      
              if(arg0.getId() == R.id.button){
                  Intent intent = new Intent(this, ThirdActivity.class);
                  startActivity(intent);
              }
      
          };
      
          @Override
          public void onBackPressed() {
              super.onBackPressed();
              overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);
          }
      }
      

      您也可以复制布局:

      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:id="@+id/flContainer"
      android:layout_width="match_parent"
      android:layout_height="match_parent" >
      
      <Button
          android:id="@+id/button"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="Click me" />