Kaydırma çubuğu

Sayfada yükleme, ilerleme durumu veya gezinme çubuğunu göstermek için dokunun. Kaydırma çubukları küresel kullanıcı deneyimi bileşenleridir ve dikkat edin.


Kaydırma Çubuğu

Kaydırma kaydırma çubukları, siz kaydırırken kartın konumunu belirtmek için kullanılır farklı kartları kullanabilirsiniz. Aynı türde efekt türünü kullanarak Slider.Scroller.

  1. Tekliflerinizi otomatikleştirmek ve optimize etmek için Slider.from() oluşturmak için Slider kullanılan View tıklayın.
  2. Şunu oluşturun: Slider.Scroller kullanarak startScroller() ve maksimum konumları ve başlangıç konumlarını belirleyin.

Burada, bir kaydırıcıyı sonraki konuma taşıyan basit bir uygulamayı görebilirsiniz Kullanıcı dokunduğunda:

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

Ek Süre Kaydırma Çubuğu

Ek süre kaydırma çubukları, kullanıcının şu işlemleri yapmasının yararlı olduğu etkinliklerde çalışır: bir bildirim görür, ancak kullanıcı etkileşimi gerekmez. Bunu ekleyebilirsiniz animasyonu Slider.GracePeriod.

  1. Tekliflerinizi otomatikleştirmek ve optimize etmek için Slider.from() oluşturmak için Slider kullanılan View tıklayın.
  2. Bir metin oluştur: GracePeriod.Listener ve uyguladığımız onGracePeriodEnd() ve onGracePeriodCancel() bu etkinlikleri yönetebilirsiniz.
  3. Bir metin oluştur: Slider.GracePeriod ve GracePeriod.Listener şuraya: startGracePeriod() yöntemini kullanın.
  4. Etkinliğin onBackPressed() için aşağı kaydırma hareketini kullanın.
  5. Kullanıcı hızlıca aşağı kaydırırsa çağrı cancel() uygulamasında Slider.GracePeriod tuşuna basın.

Aşağıdaki örnekte, ek süre kaydırıcısı bir dinleyici ile başlatılmıştır. dönem sona erdiğinde bir başarı sesi çalacak ve ek süre kaydırma çubuğu iptal edildi:

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

Belirleme Kaydırma Çubuğu

Belirli kaydırma çubukları, genellikle ne zaman ne zaman hesaplama yapacağınıza ilişkin ilerlemeyi göstermek için kullanılır. görevi tamamlamaktır. Bu animasyonu Slider.Determinate.

  1. Tekliflerinizi otomatikleştirmek ve optimize etmek için Slider.from() oluşturmak için Slider kullanılan View tıklayın.
  2. Şunu oluşturun: Slider.Determinate kullanarak startScroller() ve maksimum konumları ve başlangıç konumlarını belirleyin.
  3. Animasyon bittiğinde hide() yöntemini Slider.Determinate tuşuna basın.

Burada, kullanıcı dokunduğunda:

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

Belirsiz Kaydırma Çubuğu

Belirsiz kaydırma çubukları, zor olan ekranları yüklemek için kullanılabilir görevin ne zaman biteceğini tahmin etmek için kullanır. Bunu ekleyebilirsiniz animasyonu Slider.Indeterminate.

  1. Tekliflerinizi otomatikleştirmek ve optimize etmek için Slider.from() oluşturmak için Slider kullanılan View tıklayın.
  2. Animasyonu şununla başlatın: Slider.startIndeterminate() yöntemini kullanabilirsiniz.
  3. Animasyonu durdurmaya hazır olduğunuzda hide() yöntemini Slider.Indeterminate.

Burada, Kullanıcı karta dokunduğunda ve tekrar dokunduğunda kartı gizlediğinde:

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