Articles of android viewpager

当ViewPager中的片段保留在BackStack中时,重新加载WebView

这是一个包含WebView的基本Fragment的代码。 WebFragment.java public class WebFragment extends Fragment { String TAG = "WebFragment"; private WebView webView; private String currentUrl = "http://www.google.com"; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.webview_layout, null); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); webView = (WebView) getView().findViewById(R.id.helloWebview); initWebView(); webView.loadUrl(currentUrl); } @SuppressLint("SetJavaScriptEnabled") private void initWebView() { webView.getSettings().setJavaScriptEnabled(true); webView.addJavascriptInterface(new […]

AdWhirl在closuresnetworking后导致java.lang.NullPointerException

我在我的一个应用程序中使用AdWhirl和Admob,发布之后,我们从adwhirl中得到了很多错误,并且很容易就像这样重现: 广告出现后,我closureswifi,并等待广告超时,然后按返回button退出应用程序。 那么这个错误就会出现,src可以从这里下载,例外情况是这样的: 05-17 11:00:13.265: E/AndroidRuntime(12482): java.lang.RuntimeException: Unable to destroy activity {me.test.admob/me.test.admob.AdWhirlTestActivity}: java.lang.NullPointerException 05-17 11:00:13.265: E/AndroidRuntime(12482): at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3112) 05-17 11:00:13.265: E/AndroidRuntime(12482): at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3130) 05-17 11:00:13.265: E/AndroidRuntime(12482): at android.app.ActivityThread.access$1200(ActivityThread.java:123) 05-17 11:00:13.265: E/AndroidRuntime(12482): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1180) 05-17 11:00:13.265: E/AndroidRuntime(12482): at android.os.Handler.dispatchMessage(Handler.java:99) 05-17 11:00:13.265: E/AndroidRuntime(12482): at android.os.Looper.loop(Looper.java:137) 05-17 11:00:13.265: E/AndroidRuntime(12482): at android.app.ActivityThread.main(ActivityThread.java:4424) 05-17 11:00:13.265: E/AndroidRuntime(12482): at java.lang.reflect.Method.invokeNative(Native Method) 05-17 […]

在ViewPager中水平滚动webview

我已经把一个WebView加载到一个ViewPager中的图像。 当我尝试水平滚动图像时,我移到下一个视图,而不是滚动图像。 在移到下一个视图之前是否可以滚动到图像的末尾? @Override public Object instantiateItem(View view, int i) { WebView webview = new WebView(view.getContext()); webview.setHorizontalScrollBarEnabled(true); webview.loadUrl("http://img.androidcookie.com/android/image.gif"); ((ViewPager) view).addView(webview, 0); return webview; }

无限ViewPager

这似乎是可能的,但我有点麻烦,搞清楚如何实现可无限页面的ViewPager 。 我的用例是一次显示一个月的日历,但可以通过分页足够多的时间切换到任何月份。 目前我只是extending PagerAdapter ,并添加3个自定义MonthViews像这样: @Override public Object instantiateItem(View collection, int position) { final MonthView mv = new MonthView(HistoryMonthActivity.this); mv.setLayoutParams(new ViewSwitcher.LayoutParams( android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT)); mv.setSelectedTime(mTime); ((DirectionalViewPager) collection).addView(mv, 0); return mv; } 我想每次只在内存中保留3个MonthView ,这样当用户选中Tab时,每个MonthView数据库显示数据的时间就不会有太大的延迟。 所以每次显示一个新的页面,我将需要删除一个MonthView并添加一个MonthView 。 如果任何人有相同的function更好的主意,我很乐意听到它! 我想尝试使用FragmentStatePagerAdapter 。

如何禁用viewpager中的预加载?

如何禁用viewpager中的预加载? 我有一个3页的viewpager。 所以我不想加载下一页和以前的页面。 我如何禁用该行为?

有没有一种方法来禁用viewPager滚动到边缘的褪色?

可滚动视图(如ListView)沿着没有内容的边缘呈现淡蓝色效果,并滚动到结尾。 我怎样才能closures效果? 在列表视图我可以使用: setHorizontalFadingEdgeEnabled(false); android:fadingEdge="none" android:requiresFadingEdge="none" 但是在viewPager中没有用处,可以给我一些build议

Android导航栏覆盖viewpager内容

我无法阻止系统导航栏遮住我的内容! 我滚动到回收站的最底部,但隐藏在导航栏后面。 这是我的XML布局。 <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/root" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <include layout="@layout/toolbar"/> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" /> </android.support.design.widget.AppBarLayout> <android.support.v4.view.ViewPager android:fitsSystemWindows="true" android:id="@+id/viewpager" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> <com.melnykov.fab.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:layout_margin="16dp" app:fab_colorNormal="@color/accent" app:fab_colorPressed="@color/accent_dark" /> 这是您在图片中看到的碎片布局。 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="8dp"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" android:scrollbars="vertical"/> </FrameLayout> 我试图添加android:fitsSystemWindows =“true”到每一个布局我可以但没有工作。 其他线程提到添加从栏计算的边际,但这似乎不是正确的解决scheme。 […]

ViewPager显示在屏幕上的项目预览之后

我想在屏幕的下一个页面预览之前显示viewpager。 上一页和下一页显示在屏幕深处,并用深度animation滑动下一页。 你可以看这个图像 我该怎么做?

从片段内部获取父ViewPager视图

我试图从一个片段内访问父视图,但我不知道如何做到这一点。 我需要在片段内的onClick事件之后切换ViewPager上的currentItem。 有任何想法吗? 编辑: 我想访问父视图(ViewPager视图),以便我可以更改currentItem这是可见的,从我的片段之一。

用ViewPager中的另一个片段replace片段

我使用一个ViewPager和一个FragmentPagerAdapter来承载三个不同的片段 [Fragment1][Fragment2][Fragment3] 我想要实现的是成功地用一个全新的片段Fragment4replaceFragment1,如果一个特定的任务成功的话。 当我使用.. FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.replace(R.id.fragment1_layout_id, fragment4); transaction.commit(); ..碎片被精美地replace,Fragment4被显示而不是Fragment1。 尽pipe我一刷到片段3,然后又回到片段4,片段1已经卷土重来。 那么,如果我使用.. FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.remove(fragment1); transaction.commit(); ..Fragment1被删除,当我回来Fragment4在那里。 所以这个解决scheme的问题是,我无法find一个方式来立即显示Fragment4作为Fragment1被删除,即使我试过: transaction.add(fragment4); transaction.show(fragment4); 下面是我的FragmentPagerAdapter实现在这个时候的样子, 没有任何事务pipe理 : public static class PagerAdapter extends FragmentPagerAdapter { public PagerAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return VIEW_COUNT; […]