滑动视图后,启动活动

时间:2016-10-19 03:44:29

标签: android

我正在尝试在Android API 16中实现以下功能: 我希望能够刷过2个屏幕,之后我有一个活动,登录,开始。目前,登录活动显示一个祝酒词 屏幕1 - >屏幕2 - >开始活动(例如登录/注册屏幕)

我已经使用了片段以及ViewPager,并设法从屏幕1滑动到屏幕2.然而,我陷入了如何超越这个目标。

我使用了意图来启动活动。但是这会导致过渡屏幕1 - > 2没有显示,但我确实从登录屏幕获取了Toast消息。我不知道在哪里放置意图或者我是以正确的方式这样做。

我该如何处理?欢迎任何想法或建议。

4 个答案:

答案 0 :(得分:1)

创建另一个将成为第三个的片段并使用以下代码:

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) {

        }
    });

答案 1 :(得分:1)

首先创建一个包含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) {

        }
    });

答案 2 :(得分:0)

请使用以下自定义类替代视图寻呼机

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();
    }

}

然后在视图中创建自定义类将Viewpager替换为Custome ViewPager,如下所示

<com.examples.activity.CustomViewPager                    android:id="@+id/pager"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/rcTemp"
                android:layout_alignLeft="@+id/rcTemp"
                android:layout_alignRight="@+id/rcTemp"
                android:layout_alignTop="@id/rcTemp"
                android:layout_below="@+id/rcTemp" />

并在您的代码中初始化为CustomeviewPager并覆盖方法onSwipeOutListener(),如下所示

 mPager = (CustomViewPager) findViewById(R.id.pager);
        mPager.setOnSwipeOutListener(new CustomViewPager.OnSwipeOutListener() {

            @Override
            public void onSwipeOutAtEnd() {
                Log.d("callledby me","yes");
            }
        });

答案 3 :(得分:0)

我只是想要猜出你想要的东西 如果我错了请纠正我

我认为您的要求就是这样 当用户第一次来到应用程序然后重定向他登录或注册时显示一些幻灯片 与xender或其他应用程序相同

我认为您通过使用视图寻呼机显示幻灯片然后打开登录/注册活动来做得对 但您的问题是何时打开登录/注册活动。

我认为您应该在第二张幻灯片/页面上放置按钮以进行登录/注册活动。

我附上了xender applicatin的示例屏幕截图,他是如何做到这一点的 他有一个开始&gt;幻灯片后,在他的最后一个屏幕上按下按钮

如果您不想放置按钮,用户想要在第二个屏幕右侧滑动登录/注册 可以继续使用其他解决方案

enter image description here enter image description here

enter image description here enter image description here