Надеюсь, что я могу показать 3 элемента на странице viewpager, но теперь я могу установить значение padding и значение маркера для viewpager, поэтому он отображает только один элемент на странице viewpager. Как установить ширину элемента? Я думаю, что если я могу установить меньшую ширину элемента, viewpager отобразит больше элементов на странице.Могу ли я установить ширину элемента viewpager?
ответ
Вы пытались установить значения полей на отрицательное значение, см. setPageMargin(int)
? Если я правильно помню, я читал, что кто-то понимает нечто похожее на то, что вы так описываете.
В качестве альтернативы, вы можете взглянуть на использование Gallery
вместо этого, хотя я должен признать, что я не большой поклонник их, поскольку они кажутся менее гибкими и более багги.
Быстрый ответ
Что вы хотите, перекрывая getPageWidth
в PagerAdapter
реализации вы сделали для этого ViewPager
.
Например, установив его на 0.8f
, вы сделаете обложку одной страницы только 80% ширины просмотров, чтобы отображалась часть следующей и/или предыдущей страниц.
@Override
public float getPageWidth(final int position) {
return 0.8f;
}
Более подробная информация на https://developer.android.com/reference/android/support/v4/view/PagerAdapter.html#getPageWidth(int)
Другие замечания
Также обратите внимание, что отрицательные поля будут вызывать только отдельные страницы, чтобы перекрывать друг друга. Маржа используется для определения пространства между каждой страницей.
Если альтернативный pageWidth не настроен (нет сеттера, только переопределение), он будет покрывать 100% по умолчанию, не делая видимой части других страниц, кроме тех, которые были перетащены.
Пример кода
Очень хороший обзор того, что можно можно найти здесь https://commonsware.com/blog/2012/08/20/multiple-view-viewpager-options.html
Вид пейджера в макете
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v4.view.ViewPager>
Пример реализации адаптера инлайн настроен, это будет перейдите в методы onCreate или onViewCreated:
// get a reference to the viewpager in your layout
ViewPager mViewPager = (ViewPager) findViewById(R.id.viewpager);
// this margin defines the space between the pages in the viewpager mViewPager.setPageMargin(context.getResources().getDimensionPixelSize(R.dimen.margin_normal));
// setting the adapter on the viewpager, this could/should be a proper Adapter implementation in it's own class file instead
mViewPager.setAdapter(new PagerAdapter() {
// just example data to show, 3 pages
String[] titles = {"Eins", "Zwei", "Drei"};
int[] layouts = {R.layout.layout1, R.layout.layout2, R.layout.layout3};
@Override
public Object instantiateItem(ViewGroup container, int position) {
LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
// here you can inflate your own view and dress up
ViewGroup layout = (ViewGroup) inflater.inflate(layouts[position], container, false);
container.addView(layout);
return layout;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View)object);
}
@Override
public float getPageWidth(final int position) {
return 0.8f;
}
@Override
public CharSequence getPageTitle(int position) {
return titles[position];
}
@Override
public int getCount() {
return layouts.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
});
Пример кода на основе https://newfivefour.com/android-viewpager-simple-views.html
Полезная ссылка (вторая) действительно помогает! –
- 1. Могу ли я установить ширину элемента ячейки таблицы через CSS?
- 2. Могу ли я установить ширину UIWebBrowserView?
- 3. Могу ли я изменить ширину представления внутри viewpager?
- 4. CSS Установить ширину элемента
- 5. Могу ли я легко «установить» смещение элемента?
- 6. Я не могу установить текст в ViewPager
- 7. Могу ли я ограничить ширину элемента относительно его родителя?
- 8. Могу ли я получить реальную ширину и высоту элемента Text?
- 9. Как я могу узнать ширину элемента div
- 10. Как я могу установить ширину UILabel динамически?
- 11. Могу ли я установить ширину кнопки разделения jQuery
- 12. Могу ли я установить ширину 90% с переполнением?
- 13. Могу ли я установить максимальную ширину в css?
- 14. Могу ли я установить ширину подошвы окон в Node.js?
- 15. Как установить ширину элемента в%
- 16. Могу ли я получить или установить координаты, ширину или высоту элемента, расположенного статически в чистом JS?
- 17. Есть ли способ установить минимальную ширину элемента с помощью susy?
- 18. Есть ли способ установить ширину элемента SVG на 100%?
- 19. Могу ли я изменить ширину линейной диаграммы?
- 20. Могу ли я исправить ширину JRadioButton?
- 21. Могу ли я установить свойство элемента в xaml?
- 22. Как установить динамическую ширину элемента wrapPanels?
- 23. Установить ширину дочернего элемента на родительский div
- 24. Как установить ширину элемента страницы в jQuery
- 25. Можно ли установить ширину для определенного элемента в wookmark?
- 26. Установить родительскую ширину в ширину дочернего элемента, выровненного снизу
- 27. Можно ли установить ширину элемента выбора в процентах?
- 28. Как я могу получить ширину элемента с помощью AngularJS?
- 29. Как установить ширину элемента, равную ширине устройства?
- 30. Я не могу установить цвет элемента SPAN
Спасибо за ваш ответ, я попробую. Я не могу использовать галерею, потому что мне нужно добавить список в родительский вид, для галереи есть некоторые проблемы. –
Благодарим вас, это достигается вашим провидением. –
Это приводит к неприкосновению части слайдов, поскольку элемент перед ними перекрывает их. –