Вопрос по android, android-viewpager – Android ViewPager - Показать предварительный просмотр страницы слева и справа

85

Я использую AndroidViewPager, Я хочу показать предварительный просмотр страницы слева и справа. Я видел, где я могу использовать отрицательныйpageMargin показать предварительный просмотр правой стороны.

setPageMargin(-100);

Есть ли способ показать предварительный просмотр левой стороны? Это в основном что-то похожее на виджет галереи, который я ищу.

Хороший вопрос! Я недавно проверил источник и считаю, что нет лучшего способа, если вы не хотите изменять код src. ЛиsetPageMargin(-100) работать правильно? Macarse
Я смог сделать это, используя вид галереи. так же, как viewpager в любом случае. не знаю, почему галерея устарела WillingLearner
Я использую Vierpager с фрагментами. Так я могу использовать тот же подход? asliyanage
С тех пор этот вопрос широко освещался в [пост здесь] [1] [1]:stackoverflow.com/questions/13914609/… Ben Pearson
GalleryView сделает работу лучше, если только вы не используете ViewPger с фрагментами. Ali AlNoaimi

Ваш Ответ

6   ответов
0

mPager.setClipToPadding(false);
DisplayMetrics displayMetrics = new DisplayMetrics();
self.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int width = displayMetrics.widthPixels;
int paddingToSet = width/4; //set this ratio according to how much of the next and previos screen you want to show.
mPager.setPadding(paddingToSet,0,paddingToSet,0);

9

я настроил ViewPage для его достижения без использования отрицательного поля, найдите образец проекта здесьhttps://github.com/44kksharma/Android-ViewPager-Carousel-UI it should work in most cases but you can still define page margin with mPager.setPageMargin(margin in pixel);

58

поскольку я относительно новичок в Android, мне потребовалось некоторое время, чтобы понять & amp; установите его правильно. Итак, я выкладываю этот ответ для дальнейшего использования и помогаю всем, кто находится в той же обуви, что и я.

if (viewPager == null) 
        {

            // Initializing view pager
            viewPager = (ViewPager) findViewById(R.id.vpLookBook);

            // Disable clip to padding
            viewPager.setClipToPadding(false);
            // set padding manually, the more you set the padding the more you see of prev & next page
            viewPager.setPadding(40, 0, 40, 0);
            // sets a margin b/w individual pages to ensure that there is a gap b/w them
            viewPager.setPageMargin(20);
        }

Нет необходимости устанавливать ширинуViewPager's страница в адаптере. Для просмотра предыдущего & amp; дополнительного кода не требуется следующая страница вViewPager, Однако, если вы хотите добавить пустое пространство вверху & amp; В нижней части каждой страницы вы можете установить следующий кодViewPager's Родительский макет дочерней страницы.

android:paddingTop="20dp"
android:paddingBottom="20dp"

Final ViewPager

Это будет окончательный вид ViewPager.

Отлично спасибо.
182

ющие два значения

viewpager.setClipToPadding(false); viewpager.setPadding(left,0,right,0);

Если вам нужно пространство между двумя страницами в окне просмотра, добавьте

viewpager.setPageMargin(int);
Спасибо, это работает :)
Это действительно сработало!
Да, я согласен с тобой Jiju Induchoodan .. Для получения дополнительной информации, пожалуйста, обратитесьblog.neteril.org/blog/2013/10/14/… а такжеstackoverflow.com/questions/13914609/…
Kollaaam .......
Спасибо! Это как раз то, что мне было нужно!
-7

левом и правом scroll.add необходимых классов для прокрутки для просмотра следующих страниц.

package com.rmn.viewpager;

import java.util.List;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

/**
 * The <code>PagerAdapter</code> serves the fragments when paging.
 * @author mwho
 */
public class PagerAdapter extends FragmentPagerAdapter {

    private List<Fragment> fragments;
    /**
     * @param fm
     * @param fragments
     */
    public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
        super(fm);
        this.fragments = fragments;
    }
    /* (non-Javadoc)
     * @see android.support.v4.app.FragmentPagerAdapter#getItem(int)
     */
    @Override
    public Fragment getItem(int position) {
        return this.fragments.get(position);
    }

    /* (non-Javadoc)
     * @see android.support.v4.view.PagerAdapter#getCount()
     */
    @Override
    public int getCount() {
        return this.fragments.size();
    }
}



package com.manishkpr.viewpager;


import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class ViewPagerAdapter extends FragmentPagerAdapter {
    private Context _context;

    public ViewPagerAdapter(Context context, FragmentManager fm) {
        super(fm);  
        _context=context;

        }
    @Override
    public Fragment getItem(int position) {
        Fragment f = new Fragment();
        switch(position){
        case 0:
            f=LayoutOne.newInstance(_context);  
            break;
        case 1:
            f=LayoutTwo.newInstance(_context);  
            break;
        }
        return f;
    }
    @Override
    public int getCount() {
        return 2;
    }

}
Как этот код показывает предварительный просмотр?
24

В 2017 году такое поведение может быть легко достигнуто с помощьюRecyclerView сPagerSnapHelper (добавлено в версию 25.1.0 библиотеки поддержки v7): & # XFFFC;

enter image description here

Некоторое время назад мне нужна была функция, похожая на viewpager, и я подготовил крошечную библиотеку:

MetalRecyclerPagerView Вы можете найти весь код вместе с примерами там.

В основном он состоит из одного файла класса:MetalRecyclerViewPager.java (и два xmls:attrs.xml а такжеids.xml).

Надеюсь, это кому-нибудь поможет и сэкономит несколько часов :)

Brilliant. Удивительно! Спасибо, парень. Я люблю тебя...
Это круто. У меня уже были тонны вспомогательного кода RecyclerView. Просто добавив простойnew PagerSnapHelper().attachToRecyclerView(recyclerView) и у меня есть страница с привязкой.
Не по теме, потому что иногда нужен только пейджер, но приятно знать! Спасибо, что поделился!

Похожие вопросы