Android 滑动视图后,启动一个活动
我试图在Android API 16中实现以下目标: 我想能够在两个屏幕上滑动,然后我有一个活动,登录,开始。现在,登录活动将显示一个祝酒词。Android 滑动视图后,启动一个活动,android,Android,我试图在Android API 16中实现以下目标: 我想能够在两个屏幕上滑动,然后我有一个活动,登录,开始。现在,登录活动将显示一个祝酒词。 屏幕1-->屏幕2-->启动活动(例如登录/注册屏幕) 我使用了fragments和ViewPager,并成功地从屏幕1滑动到屏幕2。然而,我被困在如何继续超越这一点 我已使用意图启动活动。但这会导致过渡屏幕1-->2未显示,但我确实从登录屏幕收到toast消息。我不确定将意图放在何处,或者我是否以正确的方式这样做 我将如何处理这个问题?欢迎您提出任何想
屏幕1-->屏幕2-->启动活动(例如登录/注册屏幕) 我使用了fragments和ViewPager,并成功地从屏幕1滑动到屏幕2。然而,我被困在如何继续超越这一点 我已使用意图启动活动。但这会导致过渡屏幕1-->2未显示,但我确实从登录屏幕收到toast消息。我不确定将意图放在何处,或者我是否以正确的方式这样做
我将如何处理这个问题?欢迎您提出任何想法或建议。制作另一个第三个片段,并使用以下代码:
pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
if(position==2)
{
//call activity
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
请使用以下自定义类替代视图寻呼机
import android.content.Context;
import android.support.v4.view.MotionEventCompat;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
public class CustomViewPager extends ViewPager {
float mStartDragX;
OnSwipeOutListener mListener;
public CustomViewPager(Context context) {
super(context);
}
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setOnSwipeOutListener(OnSwipeOutListener listener) {
mListener = listener;
}
@Override
public boolean onTouchEvent(MotionEvent ev){
if(getCurrentItem()==getAdapter().getCount()-1){
final int action = ev.getAction();
float x = ev.getX();
switch(action & MotionEventCompat.ACTION_MASK){
case MotionEvent.ACTION_DOWN:
mStartDragX = x;
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
if (x<mStartDragX){
mListener.onSwipeOutAtEnd();
}else{
mStartDragX = 0;
}
break;
}
}else{
mStartDragX=0;
}
return super.onTouchEvent(ev);
}
public interface OnSwipeOutListener {
public void onSwipeOutAtEnd();
}
}
首先创建一个包含3个片段的视图寻呼机,尽管第三个片段永远看不到。然后,在包含视图寻呼机的活动中实现以下侦听器
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (position == 2){
// Create the intent to launch the login screen.
Intent intent = new Intent(mActivity.this, mLoginActivity.this);
startActivity(intent);
}
}
@Override
public void onPageSelected(int position) {
// If your view pager has tabs you will need to create the intent here as well.
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
我只是想知道你想要什么 如果我错了,请纠正我 我想你的要求是 当用户第一次使用应用程序时,请放映一些幻灯片,然后将其重定向到登录或注册 与xender或其他应用程序中相同 我认为您使用查看页面显示幻灯片,然后打开登录/注册活动,这样做是正确的 但您的问题是何时打开登录/注册活动 我认为您应该在第二张幻灯片/页面上按下按钮,以继续登录/注册活动 我附上了一个xender应用程序的屏幕截图示例,说明他是如何做到这一点的 他在最后一个屏幕上有一个开始>按钮,可以在幻灯片结束后继续进行另一项活动 若你们不想按下按钮,用户想在第二个屏幕右击进入登录/注册 然后就可以采用其他解决方案了
您可以发布代码吗?ViewPager显示片段或视图,而不是活动。你不用意图。在视图寻呼机中使用PagerAdapterMake 3片段。在第三页完全滑动(onPageSelected()方法)后,然后调用onPageSelected方法中的活动。我认为@DheerubhaiBansal的答案是正确的。如果我的答案是正确的,请投票。谢谢Alexi。我使用了你的建议,效果很好。我已经接受了答案,但因为我的声誉不到15(刚刚注册),所以没有表现出来。谢谢你,我理解。非常感谢,谢谢。我用了你和亚历克西的建议,非常简单。
mPager = (CustomViewPager) findViewById(R.id.pager);
mPager.setOnSwipeOutListener(new CustomViewPager.OnSwipeOutListener() {
@Override
public void onSwipeOutAtEnd() {
Log.d("callledby me","yes");
}
});
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (position == 2){
// Create the intent to launch the login screen.
Intent intent = new Intent(mActivity.this, mLoginActivity.this);
startActivity(intent);
}
}
@Override
public void onPageSelected(int position) {
// If your view pager has tabs you will need to create the intent here as well.
}
@Override
public void onPageScrollStateChanged(int state) {
}
});