슬라이더

슬라이더를 사용하여 화면 하단에 위치합니다. 슬라이더는 전역 UX 구성요소이며 주의를 기울여야 합니다.


스크롤러 슬라이더

스크롤러 슬라이더는 스와이프할 때 카드의 위치를 나타내는 데 사용됩니다. 여러 카드를 통해 이용할 수 있습니다. 다음 명령어를 사용하여 동일한 유형의 효과를 만들 수 있습니다. Slider.Scroller

  1. 사용 Slider.from() 드림 kubectl 명령어 Slider 는 View 슬라이더를 표시합니다.
  2. 만들기 Slider.Scroller 드림 사용 startScroller() 최대 및 초기 게재순위를 설정합니다.

다음은 스크롤러를 다음 위치로 애니메이션 처리하는 간단한 구현입니다. 사용자가 탭할 때:

public final class SliderActivity extends Activity {

    private static final int MAX_SLIDER_VALUE = 5;
    private static final long ANIMATION_DURATION_MILLIS = 5000;

    private CardScrollView mCardScroller;
    private Slider mSlider;

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);

        // Create the cards for the view
        mCardScroller = new CardScrollView(this);
        mCardScroller.setAdapter(new CardAdapter(createCards()));

        // Set the view for the Slider
        mSlider = Slider.from(mCardScroller);

        mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                processSliderRequest(position+1);
            }
        });

        setContentView(mCardScroller);
    }

    private void processSliderRequest(position) {
        Slider.Scroller scroller = mSlider.startScroller(MAX_SLIDER_VALUE, 0);

        // Animate the slider to the next position. The slider
        // automatically hides after the duration has elapsed
        ObjectAnimator.ofFloat(scroller, "position", 0, position)
            .setDuration(ANIMATION_DURATION_MILLIS)
            .start();
    }
}

유예 기간 슬라이더

유예 기간 슬라이더는 사용자가 다음의 작업을 하는 데 유용한 활동에서 작동합니다. 사용자의 상호작용이 필요하지 않습니다. 이 인코더-디코더 아키텍처를 Slider.GracePeriod

  1. 사용 Slider.from() 드림 kubectl 명령어 Slider 는 View 슬라이더를 표시합니다.
  2. 만들기 GracePeriod.Listener 드림 kubectl run 명령어를 사용하여 onGracePeriodEnd() 및 onGracePeriodCancel() 이러한 이벤트를 처리합니다
  3. 만들기 Slider.GracePeriod 드림 애니메이션을 시작하려면 GracePeriod.Listener(으)로 startGracePeriod() 메서드를 사용하여 지도 가장자리에 패딩을 추가할 수 있습니다.
  4. 활동의 onBackPressed() 드림 아래로 스와이프 동작을 처리합니다.
  5. 사용자가 아래로 스와이프하면 cancel() 드림 에 Slider.GracePeriod 슬라이더를 닫습니다.

다음 예에서 유예 기간 스크롤러는 리스너로 시작됩니다. 마침표가 끝날 때 성공 사운드를 재생하고 유예 기간 슬라이더가 취소된 경우:

public final class SliderActivity extends Activity {

    ...
    private Slider.GracePeriod mGracePeriod;

    private final GracePeriod.Listener mGracePeriodListener =
        new GracePeriod.Listener() {

        @Override
        public void onGracePeriodEnd() {
            // Play a SUCCESS sound to indicate the end of the grace period.
            AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
            am.playSoundEffect(Sounds.SUCCESS);
            mGracePeriod = null;
        }

        @Override
        public void onGracePeriodCancel() {
            // Play a DIMISS sound to indicate the cancellation of the grace period.
            AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
            am.playSoundEffect(Sounds.DISMISSED);
            mGracePeriod = null;
        }
    };

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);

        // Create the cards for the view
        mCardScroller = new CardScrollView(this);
        mCardScroller.setAdapter(new CardAdapter(createCards()));

        // Set the view for the Slider
        mSlider = Slider.from(mCardScroller);

        mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                mGracePeriod = mSlider.startGracePeriod(mGracePeriodListener);
            }
        });

        setContentView(mCardScroller);
    }

    @Override
    public void onBackPressed() {
        // If the Grace Period is running,
        // cancel it instead of finishing the Activity.
        if (mGracePeriod != null) {
            mGracePeriod.cancel();
        } else {
            super.onBackPressed();
        }
    }
}

결정 슬라이더

확정 슬라이더는 진행 상황을 나타내는 데 사용되며, 여기에서는 태스크가 완료될 때까지 기다립니다. 이 애니메이션을 추가하려면 Slider.Determinate

  1. 사용 Slider.from() 드림 kubectl 명령어 Slider 는 View 슬라이더를 표시합니다.
  2. 만들기 Slider.Determinate 드림 사용 startScroller() 최대 및 초기 게재순위를 설정합니다.
  3. 애니메이션이 완료되면 hide() 드림 메서드를 Slider.Determinate 슬라이더를 숨길 수 있습니다.

다음은 사용자 탭:

public final class SliderActivity extends Activity {

    ...
    private Slider.Determinate mDeterminate;

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);

        // Create the cards for the view
        mCardScroller = new CardScrollView(this);
        mCardScroller.setAdapter(new CardAdapter(createCards()));

        // Set the view for the Slider
        mSlider = Slider.from(mCardScroller);

        mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                   int position, long id) {
                mDeterminate = mSlider.startDeterminate(MAX_SLIDER_VALUE, 0);
                ObjectAnimator animator = ObjectAnimator.ofFloat(mDeterminate,
                    "position", 0, MAX_SLIDER_VALUE);

                // Hide the slider when the animation stops.
                animator.addListener(new AnimatorListenerAdapter() {
                    @Override
                    public void onAnimationEnd(Animator animation) {
                        mDeterminate.hide();
                    }
                });

                // Start an animation showing the different positions of the slider.
                animator.setDuration(ANIMATION_DURATION_MILLIS).start();
            }
        });

        setContentView(mCardScroller);
    }
}

미확정 슬라이더

불확실한 슬라이더는 로드하기 어려운 화면을 로드하는 데 사용할 수 있습니다. 태스크 완료 시점을 계산합니다. 이 인코더-디코더 아키텍처를 Slider.Indeterminate

  1. 사용 Slider.from() 드림 kubectl 명령어 Slider 는 View 슬라이더를 표시합니다.
  2. 애니메이션 시작 Slider.startIndeterminate() 메서드를 사용하여 지도 가장자리에 패딩을 추가할 수 있습니다.
  3. 애니메이션을 중지할 준비가 되면 hide() 메서드 Slider.Indeterminate

다음은 사용자가 카드를 탭하고 다시 탭하면 카드를 숨깁니다.

public final class SliderActivity extends Activity {

    ...
    private Slider.Indeterminate mIndeterminate;

    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);

        // Create the cards for the view
        mCardScroller = new CardScrollView(this);
        mCardScroller.setAdapter(new CardAdapter(createCards()));

        // Set the view for the Slider
        mSlider = Slider.from(mCardScroller);

        mCardScroller.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                   int position, long id) {
                // Toggle between showing/hiding the indeterminate slider.
                if (mIndeterminate != null) {
                    mIndeterminate.hide();
                    mIndeterminate = null;
                } else {
                    mIndeterminate = mSlider.startIndeterminate();
                }
        });

        setContentView(mCardScroller);
    }
}