2016-10-19 2 views
3

Android API 16에서 다음을 달성하려고합니다. 2 개의 화면을 스 와이프하고 싶습니다. 그 후 시작하는 활동이 있습니다. 지금은 로그인 활동에 축배가 표시됩니다.
화면 1 -> Screen2 -> 활동 시작 (예 : 로그인/등록 화면)스 와이프 한 후 액티비티를 시작하십시오.

ViewPager뿐만 아니라 조각을 사용하여 화면 1에서 화면 2로 스 와이프 할 수 있습니다. 이것을 넘어서야한다.

활동을 시작하기 위해 인 텐트를 사용했습니다. 그러나 이로 인해 전환 화면 1 -> 2가 표시되지 않지만 로그인 화면에서 축배 메시지가 표시됩니다. 나는 의도를 어디에 두어야할지 잘 모르겠다.

어떻게 접근합니까? 어떤 아이디어 나 제안도 환영합니다.

+0

코드를 게시 할 수 있습니까? – sasikumar

+0

ViewPager는 활동이 아닌 조각이나 뷰를 표시합니다. 인 텐트를 사용하지 마십시오. 뷰 호출기에서 PagerAdapter –

+1

Make 3 조각을 사용합니다. 세 번째 페이지를 완전히 스 와이프 한 다음 (onPageSelected() 메서드) onPageSelected 메서드에서 activity를 호출합니다. –

답변

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

감사합니다. 나는 너와 알렉시의 제안을 사용했는데 아주 간단했다. –

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를 대체보기에서 사용자 정의 클래스를 생성 한 후 후를 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" /> 

드 세번째 가시 도달하지 않을지라도

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

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

먼저 3 개 파편 뷰 페이저를 다음과 같이 생성) (CustomeviewPager로 초기화 방법을 대체 onSwipeOutListener. 그런 다음,보기 호출기를 포함하는 활동에서 다음 리스너를 구현하십시오.

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

     } 
    }); 
+0

감사합니다. Alexi. 나는 당신의 제안을 사용했는데 정상적으로 작동했습니다. –

+0

나는 대답을 받아 들였지만 나는 15 미만의 명성을 얻었고 (방금 등록했다) 보여주지 않는다. –

+0

감사합니다. 이해합니다. 매우 감사. –

0

난 그냥 당신이 내가

내가 일부 슬라이드를 보여처럼 사용자가 다음 처음으로 앱에 그를 리디렉션 할 때 당신의 필요 조건이라고 생각 잘못 생각하는 경우 이 날 수정하시기 바랍니다 원하는 것을 gues하는 것을 시도하고있다 로그인 또는 등록 xender 또는 다른 응용 프로그램과 동일

슬라이드를 표시하고 로그인을 열고/활동 등록 보기를 사용하여 올바르게하고 있다고 생각하지만 로그인/등록 활동을 열 때입니다.

로그인/등록 활동을 계속하려면 초당 슬라이드/페이지에 단추를 두어야한다고 생각합니다.

나는 그가 슬라이드 당신이 버튼을 사용자가 넣어 싶지 않는 경우

후 다른 활동에가는 그의 마지막 화면에서 시작> 버튼이 것을 어떻게하고 있는지 applicatin 예를 들어 화면을 xender의 샷을 첨부

/로그인 번째 화면은 다른 솔루션

enter image description hereenter image description here

enter image description hereenter image description here

에 가서 확인하는 것보다 에서 오른쪽으로 스 와이프하여 등록을 가고 싶어
관련 문제