Articles of android viewpager

如何更新ViewPager内容?

我有这个PageAdapter与星期几,为每个传呼机我有相同的布局。 我的问题是如何更新右侧listView更改一天。 当我改变一天寻呼机创build一个新的寻呼机并删除其他,当发生这种情况我的列表视图指向新的寻呼机,但不是当前。 例如,是wedneyday,我保存列表视图引用,当我改变星期二星期一寻呼机是创build和星期四被删除,并且我的参考点到最后一页创build(星期一),但我在星期二。 我的页面适配器: ListView lvwConfig; @Override public Object instantiateItem(View pager, int position) { LayoutInflater inflater = (LayoutInflater) mContext .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflater.inflate(R.layout.pager_layout, null); lvwConfig = (ListView) v.findViewById(R.id.lvwConfig); ((ViewPager) pager).addView(v, 0); return v; } 我想ListView总是指向当前项目的列表视图。

Viewpager和FragmentPagerAdapter:页面视图删除

我正在使用Viewpager和FragmentPagerAdapter来允许添加和删除页面。 每个页面显示从互联网上获得的数据。 当新页面被添加时,新的片段与该页面相关联。 数据通过AsyncTask获取并显示在Fragment中。 当用户select删除一个页面,这个想法是销毁页面和关联的片段。 一般来说,这一切运作良好。 我看到的问题如下: 你有三个页面的数据: [第1页] [第2页] [第3页] 你删除了最后一页以外的任何页面,比如第2页; 第2页消失如所愿: [第1页] [第3页] 你添加一个新的页面; 而不是空白的新页面,新页面显示页面3中的数据(视图)。 [第1页] [第3页] [第4页,但是显示第3页的视图/数据应该是空白] 我的活动页面删除代码如下: // Destroy fragment for this page DataListFragment curFrag = getFragmentByName(currentPage); FragmentManager fm = getSupportFragmentManager(); fm.beginTransaction().remove(curFrag).commit(); fm.executePendingTransactions(); curFrag = null; // Remove page and update adapter mPageTitles.remove(position); mAdapter.notifyDataSetChanged(); 使用debugging器,它显示在执行executePendingTransactions()调用之后,片段将从FragmentManager移除。 但在FrampePagerAdapters调用mAdapter.notifyDataSetChanged() ,片段被重新添加,然后在创build新页面时显示。 我尝试使用FrameStatePagerAdapter,因为这应该允许销毁碎片​​,但它不起作用。 在我的FragmentPagerAdapter的getItemPosition()方法中,我使用return FragmentAdapter.POSITION_NONE; 正如我在另一篇文章中指出的那样。 […]

在ActivityGroup中的Activity中,使用Pull来刷新viewpager中的gridview会导致ClassCastException

我正在尝试使用ViewPager的PullToRefresh GridView导致崩溃给ClassCastException。 这是例外。 FATAL EXCEPTION: main java.lang.ClassCastException: android.support.v4.view.ViewPager$LayoutParams at android.widget.LinearLayout.measureVertical(LinearLayout.java:360) at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) at android.view.View.measure(View.java:8313) at android.widget.RelativeLayout.measureChild(RelativeLayout.java:566) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:381) at android.view.View.measure(View.java:8313) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) at android.view.View.measure(View.java:8313) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) at android.view.View.measure(View.java:8313) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) at android.view.View.measure(View.java:8313) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) at android.view.View.measure(View.java:8313) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) at android.view.View.measure(View.java:8313) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:581) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:365) at […]

带有WebView的ViewPager允许轻扫和禁止滚动WebView

我使用ViewPager和WebView将HTML内容呈现为电子书。 在ViewPager的一些页面上,我允许TouchEvent被WebView处理,在一些页面上,我让ViewPager自己处理TouchEvent ,方法是覆盖onInterceptTouchEvent中的ViewPager方法(有些页面没有WebView第一个TextViews和Buttons和最后一页在这里)。 这里是代码相同的, @Override public boolean onInterceptTouchEvent(MotionEvent ev) { if (getCurrentItem() == 0 || getCurrentItem() == getAdapter().getCount() – 1) return false; else { if (ev.getAction() == MotionEvent.ACTION_DOWN) { return false; } return true; } } 我再次禁止通过在WebView使用以下代码设置OnTouchListener进行滚动: contentView.setOnTouchListener((v, event) -> { if (MotionEventCompat.getActionMasked(event) == MotionEvent.ACTION_MOVE) { ((BigBeeViewPager) v.getParent().getParent()).onInterceptTouchEvent(event); } return true; }); 我面对的问题是 – 当我试图从页面中间滑动ViewPager它不起作用。 […]

在ViewPager中垂直滚动页面

这可能是显而易见的,也是完全不需要的post,但是我一直在解决在VewPager的页面上允许垂直滚动function的问题,而且在这里甚至有很less的解决scheme。 我发现一些人声称要解决这个问题,但他们似乎被延长和纠结。 所以对于那些可能正在寻找相同问题的人inheritance解决scheme。 有了这个(你会想比我写的更大的string),你将能够垂直滚动内容,并在页面之间滑动。 layout.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v4.view.ViewPager android:id="@+id/conpageslider" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout> 滚动viewpager类 public class ScrollingViewPager extends Activity{ private ViewPager pager; private Context cxt; private CharSequence[] pages = {"stuff", "more stuff", "other stuff"}; private PageSlider ps; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.layout); cxt = this; ps = new PageSlider(); pager = […]

ViewPager从另一个片段后面空白

实际上,我正在使用主视图容器中的片段在单个活动中使用整个应用程序。 一个片段包含一个viewPager,当我点击一个由LoginFragmentreplace的标题button片段时,在后面我们维护backstack所以包含viewPager的片段将会在最上面,但是我们在viewPager获得了当前项目的空白视图。

无法在ViewPager中的另一个片段中刷新/更新列表视图

我很难搞清楚下一件事情。 我有什么:我有一个viewpager和几页在里面。 在这个问题中,只有两个是重要的,我们称它们为Fragment1和Fragment2,它们彼此相邻。 Fragment1包含一个由互联网(外部数据库)填充数据的列表视图。 Fragment2包含一个简单的button。 我的目标:如果我点击Fragment2中的button,我将添加一个新项目到外部数据库。 我想用这个新项目更新/刷新Fragment1中的列表视图。 notifyDataChanged()用于我的情况,但是到目前为止,我确信它会重新实现每个页面。我将以最清晰的方式介绍我的问题,所以让我们看看我的代码,这是我的ViewPager适配器: class MyPagerAdapter extends FragmentStatePagerAdapter { public List<String> fragmentsA; public MyPagerAdapter(FragmentManager fm) { super(fm); fragmentsA = fragments; } @Override public Fragment getItem(int position) { return Fragment.instantiate(context, fragmentsA.get(position)); } @Override public CharSequence getPageTitle(int position) { return mEntries.get(position % CONTENT.length).toUpperCase(); } @Override public int getCount() { return mEntries.size(); } @Override […]

在NestedScrollView Android 2.3或更低版本中滚动WebView

我在我的android应用程序中添加了Toolbar , Tablayout和Viewpager 。 TabLayout有三个Tabs ,每个都显示一个WebView 。 当用户在WebView向下/向上滚动时,我将WebView放置在NestedScrollView以隐藏/显示Toolbar 。 Toolbar隐藏在Android 3.0或更高版本中。 但不幸的是,在Android 2.3或更低版本中, WebView不会首先滚动。 我必须滑动到另一个选项卡,当我再次回到第一个Tab WebView开始滚动。 我想要的是? 我希望WebView应该在Android 2.3或更低版本中滚动而没有任何问题。 我的WebView <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:isScrollContainer="false" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingTop="1dp"> <WebView android:id="@+id/webviewtool" android:layout_width="match_parent" android:layout_height="fill_parent" android:numColumns="1" android:scrollbars="none" android:focusableInTouchMode="false" android:focusable="false" android:background="#FFFFFF" /> </LinearLayout> </android.support.v4.widget.NestedScrollView>

在Scrollview中使用FragmentStatePagerAdapter,Viewpager的问题

我在用: 包含以编程方式添加的片段的活动布局。 父片段与视图分页器有FragmentStatePagerAdapter ,这个全部内容都在ScrollView里面。 查看传呼机充满了一些具有Recyclerview的儿童片段。 问题是: 查看寻呼机片段有一个列表,所以我必须以编程方式设置父视图寻呼机的高度。 但我不能那样做。 为此,我使用了 viewpager.getLayoutParams().height = 20000; viewpager.requestLayout();` 和 ViewGroup.LayoutParams params = viewPagerBottom.getLayoutParams(); params.height = 20000; viewPagerBottom.setLayoutParams(params); 此外,我已经尝试查看传呼机并查看传呼机碎片高度属性作为wrap_content 如果我不设置scrollview android:layout_height="match_parent"与android:fillViewport="true"不能看到查看传呼机内容。 它是父分片layout.xml。 <ScrollView style="@style/scrollDefaultStyle" android:layout_height="wrap_content" android:fillViewport="true" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TabLayout …. /> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /> </LinearLayout> </ScrollView>

日历和PagerAdapter – 无限视图

在我的活动中,我使用ViewPager向左/向右滑动并相应地显示月份视图。 我将onCreate的月份和年份值传递给PagerAdapter: private static int NUM_AWESOME_VIEWS = 3; viewPager = (ViewPager) v.findViewById(R.id.pager); cAdapter = new CalendarPagerAdapter(this.getActivity().getApplicationContext(), date_value, fragmentManager, month, year); viewPager.setAdapter(cAdapter); viewPager.setOffscreenPageLimit(3); 日历从十一月开始,然后滚动到一月。 我希望日历向前和向后显示无限的意见。 PagerAdapter: public CalendarPagerAdapter(Context context, int dv, FragmentManager fm, int month, int year){ this.context = context; this.dv = dv; this.fm = fm; this.month = month; this.year = year; } public Object instantiateItem(View […]