Intereting Posts
Наиболее правильно сохранить состояние RecyclerView? Android Systrace: Неожиданная ошибка (Conversion = ';') Не может оценивать модуль «реагировать на собственные карты»: конфигурация с именем «по умолчанию» не найдена Поиск инструмента для создания графического файла с 9 патчами Отображение изображения YUV в Android Проверьте, есть ли у устройства Android кнопка поиска оборудования Как добавить прозрачность элемента внутри RecyclerView, когда он не соответствует границе списка? Получение «пакета android.support.multidex не существует» после обновления до Android Studio 2.3 Пользовательский интерфейс Android toggle Не удалось выполнить цель com.jayway.maven.plugins.android.generation2 Как преодолеть Android Studio не может разрешить символ для классов Android Android 3.x + Java ZipFile Class – Невозможно прочитать ZipEntries из больших файлов Должен ли я использовать XML или JSON в качестве формата данных в приложениях для Android? Что установить CursorAdapter (контекст контекста, курсор c, int flags), чтобы он работал с CursorLoader? Примечание: android.support.v4.text.ICUCompatIcs: не удается найти динамически ссылочный класс libcore.icu.ICU

Android ViewPager – просмотр предварительного просмотра страницы слева и справа

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

 setPageMargin(-100); 

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

Solutions Collecting From Web of "Android ViewPager – просмотр предварительного просмотра страницы слева и справа"

Чтобы показать предварительный просмотр левой и правой страниц, установите следующие два значения

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

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

 viewpager.setPageMargin(int); 

Ответ от @JijuInduchoodan является совершенным и работает. Однако, поскольку я относительно новичок в Android, мне потребовалось некоторое время, чтобы понять и установить его правильно. Итак, я отправляю этот ответ для будущей справки и помогаю всем, кто в той же обуви, что и я.

 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 в адаптере. Нет дополнительного кода, необходимого для просмотра предыдущей и следующей страницы в ViewPager . Однако, если вы хотите добавить пустое место в верхней и нижней части каждой страницы, вы можете установить следующий код в родительский макет родительской страницы ViewPager.

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

Final ViewPager

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

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

Введите описание изображения здесь

Когда-то мне понадобилась такая функция, подобная viewpager, и подготовила крошечную библиотеку:

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

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

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

Используйте этот адаптер фрагмента и класс, чтобы просмотреть viewpager в левом и правом 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; } }