Как добавить listview внутри viewpager?

Как добавить listview внутри viewpager (без использования фрагментов)? Не могли бы вы мне помочь? Заранее спасибо.

Это будет легко, если вы используете Fragment в ViewPager , НО, если вы не хотите использовать ViewPager с фрагментом, чем ViewPager Without Fragments , например, где вы добавляете Views и layouts в ViewPager и сложнее .

Хорошим примером является галерея изображений, в которой пользователь может прокручивать разные изображения. На этих типах страниц все, что вы действительно хотите отобразить, – это представление статического контента (в данном случае, изображение), как использовать ViewPager только с обычными представлениями и макетами.

Лучше всего использовать фрагмент для каждой страницы viewPager. Таким образом, вы сможете легко поддерживать отдельные страницы.

В вашем классе фрагментов (класс java, который расширяет фрагмент) вы можете работать с вашим списком, например инициализировать, устанавливать адаптер в listview, устанавливая onClickListner для элементов списка, как и в Activity

Вы не можете использовать ViewPager для прокрутки между действиями . Вам нужно преобразовать каждую из вас в «Фрагменты», затем объединить все в одной FragmentActivity с помощью адаптера, который вы используете с ViewPager.

Это не так, как работает ViewPager. Вы загружаете страницы в ViewPager с помощью PagerAdapter. Ваш ListView будет содержаться внутри фрагмента, созданного PagerAdapter.

В макете:

 <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/home_pannels_pager" /> 

В FragmentActivity с этим макетом:

ViewPager pager = (ViewPager) findViewById (R.id.viewPager); Pager.setAdapter (новый PagerAdapter (getSupportFragmentManager ())); Пример simle PagerAdapter:

Открытый класс PagerAdapter расширяет FragmentPagerAdapter {

 public FrontPageAdapter(FragmentManager Fm) { super(Fm); } @Override public Fragment getItem(int position) { Bundle arguments = new Bundle(); arguments.putInt("position", position); FragmentPage fragment = new FragmentPage(); fragment.setArguments(arguments); return fragment; } @Override public int getCount() { // return count of pages return 3; } } 

Пример FragmentPage:

Открытый класс FragmentPage расширяет фрагмент {

 public FragmentPage() {} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_frontpage, container, false); // probably cast to ViewGroup and find your ListView Bundle arguments = getArguments(); int position = b.getInt("position"); return view; } } 

Ответил здесь – https://stackoverflow.com/a/28798795/7764015

Intereting Posts
Удаление адресной строки из браузера (для просмотра на Android) Андроидальная ошибка подписи GoogleConfig Tesseract v3.03 рендеринг PDF с возможностью поиска текста Отправка уведомления из службы на Android Предупреждение SimpleDateFormat Чтобы получить локальное форматирование, используйте getDateInstance (), getDateTimeInstance () или getTimeInstance (), Проверьте, работает ли служба на Android? Получение SQLiteCursorLoader для наблюдения за изменениями данных Возможно ли разместить один вид над другим в андроиде? Изменение цвета текста ActionBar при использовании ActionBarCompat Кнопка Android Studio AVD Manager отключена Android game loop vs обновление в потоке рендеринга Java.lang.SecurityException: требуется READ_PHONE_STATE: ни пользователь 10210, ни текущий процесс .. только в телефонах HTC Как установить многострочные, первые флажки и отключить предложения на edittext Записанное видео на 90 градусов повернуто после загрузки в Интернет Android: layout_marginBottom, похоже, не работает должным образом в 2.2 (Froyo)