Ссылка NullReferenceException или Object, не установленная на экземпляр объекта, возникает, когда объект класса, который вы пытаетесь использовать, не создается. Например:
Предположим, что у вас есть класс с именем Student.
public class Student
{
private string FirstName;
private string LastName;
public string GetFullName()
{
return FirstName + LastName;
}
}
Теперь рассмотрим другой класс, в котором вы пытаетесь получить полное имя учащегося.
public class StudentInfo
{
public string GetStudentName()
{
Student s;
string fullname = s.GetFullName();
return fullname;
}
}
Как видно из вышеприведенного кода, оператор Student s - объявляет только переменную типа Student, обратите внимание, что класс Student не создается в этой точке. Следовательно, когда выполняется выполнение инструкции s.GetFullName (), она выкинет исключение NullReferenceException.
, если кто-то еще ищет решение, я настроил ViewPage для его достижения без использования отрицательного поля, найдите здесь пример проекта https://github.com/44kksharma/Android-ViewPager-Carousel-UI , он должен работать в большинстве случаев, но вы все равно можете определить границу страницы с помощью mPager.setPageMargin(margin in pixel);
В 2017 году такое поведение также может быть легко достигнуто с помощью RecyclerView
с PagerSnapHelper (добавлено в версию 25.1.0 библиотеки поддержки v7): 
Когда-то мне понадобилась такая функция, подобная viewpager, и подготовила крошечную библиотеку:
MetalRecyclerPagerView - вы можете найти весь код вместе с примеры.
В основном он состоит из одного файла класса: MetalRecyclerViewPager.java (и двух xmls: attrs.xml и идентификаторов. 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;
}
}
Ответ от @JijuInduchoodan совершенен и работает. Однако, поскольку я относительно новичок в 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"
Это будет окончательный вид ViewPager.
Чтобы показать предварительный просмотр левой и правой страниц, установите следующие два значения
viewpager.setClipToPadding(false);
viewpager.setPadding(left,0,right,0);
Если вам нужно пространство между двумя страницами в представлении, добавьте
viewpager.setPageMargin(int);