我想创建按钮单击以将一个活动导航到另一个活动屏幕,看起来像iPhone导航。下面我添加了另一个活动调用代码,但如果我使用此代码,我可以使用弹出选项调用另一个活动。我需要从右到左导航第二个活动页面后退按钮...
Intent intent = new Intent(AppMainActivity.this, ForgotPasswordActivity.class);
AppMainActivity.this.startActivity(intent);
答案 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)
我的例子在这里。添加后活动会滑入,点击后会滑出:
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>
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" />
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>
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>
在活动中:
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" />