Articles of android viewpager

在Android Viewpager中更改页面标题

我有一个ViewPager ,我正在使用getPageTitle方法来获取当前页面的标题。 这里是适配器代码: @Override public Fragment getItem(int i) { details = productData.get(i); Fragment fragment = new ProductViewFragment(); Bundle args = new Bundle(); args.putInt(ProductViewFragment.ARG_SECTION_NUMBER, i + 1); fragment.setArguments(args); return fragment; } @Override public int getCount() { return productData.size(); } public CharSequence getPageTitle(int position) { return (position+1)+" of "+myData.size(); } 现在我想更新上一​​个和下一个片段的页面标题。 我想把它们命名为“上一个”和“下一个”。 而且它应该在后续页面上dynamic更新。 我能够获得当前页面的标题号码。 例如,当我查看第五个片段时,当前片段将正确显示标题。 在ViewPager的两个angular落,它在左边和下一个页面标题号码的右边显示了前一页的标题号码。 现在,我希望页面标题的左侧是“前一个”,右侧是“下一个”,类似于Gmail应用程序,以及它如何在ViewPager中显示邮件数量。 […]

将拖动项目实现到屏幕边缘function

当项目在屏幕边缘附近(左侧或右侧)拖动时,我需要实现当前的选项卡更改。 拖放N拖放function和当前标签开关没有问题。 我只是不能正确处理这个事件 – 当拖动项目靠近屏幕的边缘。 你会怎么做? 我试过的: <FrameLayout android:id="@+id/left_toggle_area" android:layout_width="30dp" android:layout_height="fill_parent" android:layout_alignParentStart="true" android:layout_alignParentLeft="true"> </FrameLayout> <FrameLayout android:id="@+id/right_toggle_area" android:layout_width="30dp" android:layout_height="fill_parent" android:layout_alignParentEnd="true" android:layout_alignParentRight="true"> </FrameLayout> <GridView android:layout_width="match_parent" android:layout_height="match_parent" … /> 这个想法是当在切换区域拖动项目时以编程方式改变当前标签。 但事件DragEvent.ACTION_DRAG_ENTERED在该地区从来没有发生,因为(我相信) GridView占据了整个屏幕,只是与切换区域重叠。 当拖动开始事件被触发时,我已经尝试将这些区域放在前面。 但是这不起作用。 FrameLayout toggleView = (FrameLayout) v; toggleView.bringToFront(); toggleView.requestLayout(); toggleView.invalidate(); 如果有人遇到这样的问题,请分享您的经验。 或者也许还有另一个更好的解决scheme。 请给我一个提示。

ListView中的ViewPager和OnItemClickListener

我正在创build一个滑动到解散列表视图适配器。 我的基本方法是将列表项的视图作为ViewPager中的第二个视图进行封装,并在ViewPager的项目更改侦听器中提供必要的callback。 通过很多痛苦,我已经使View回收站按预期工作,以及实现了ViewHolder和ViewBinder模式。 我甚至设法让ListView在ViewPager滚动的时候接pipe触摸事件,而不必制作一个ListView的自定义子类(我可以从Adapter中完成)。 我遇到麻烦的地方是让select器和OnItemClickListener工作。 在查看ListView的源代码之后,似乎通过覆盖ViewPager的hasFocusable()方法总是返回false(稍后我将从子视图中提取这个值),应该重新启用这些东西。 不幸的是,这种情况并非如此。 我已经尝试setDecendantFocusability()解决方法,我仍然坚持。 如果可能的话,我想避免扩展ListView,以提供最大的模块性。 由于类似的原因,我不想将select器添加到ViewPager的背景(如果开发人员更改ListView的select器,这将不会被反映)。 基本上,我正在寻求让ViewPager代码在ListView和子View之间透明。 有任何想法吗?

在ViewPager中的PagerTabStrip位置

我有以下代码: <android.support.v4.view.ViewPager android:id="@+id/main_pager" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v4.view.PagerTabStrip android:id="@+id/pager_tab_strip" android:layout_width="match_parent" android:layout_height="wrap_content" /> </android.support.v4.view.ViewPager> 一切都得到了应有的地位。 我现在想要的是, PagerTabStrip覆盖ViewPager 。 它应该在顶部呈现,而不占用任何布局空间。 基本上,ViewPager中的片段应该像PagerTabStrip所做的那样从0,0开始。 任何帮助赞赏。 谢谢!

如何将浮动操作button排在一个片段上,只能在Tab布局中

我试图实现以下没有成功。我有两个材料devise刷卡tabs.I使用这个库 'com.oguzdev:CircularFloatingActionMenu:1.0.2'来实现FAB,但是当我滑动标签到第二个标签,FAB仍然附加到新的片段。 我想在第二个片段上隐藏FAB 。 有没有办法做到这一点?

Android ViewPager不能调用onDetach / onDestroy / onDestroyView在容器中进行replace

我有一个FrameLayout容器,在其中我使用replace方法来放置一个片段,当从导航抽屉select一个项目。 getSupportFragmentManager().beginTransaction().replace(R.id.container, fragment, fragment.getFragmentTag()).commit(); 我有一个其中有一个ViewPager的片段。 我有3个片段与ViewPager显示在一个选项卡布局。 当我从导航抽屉中select另一个项目时,带有ViewPager的片段将被replace,但片段内的片段不会被分离。 系统仅使用ViewPager onDetach / onDestroy等方法调用片段,而不调用其包含的片段的方法。 我正在使用FragmentPagerAdapter,我尝试使用FragmentStatePager适配器。 没有什么变化。 我正在使用默认的setOffscreenPageLimit(1); 我怎样才能得到我的ViewPager片段方法onDetach / onDestroy调用? 谢谢!

使用ViewPager实现像iOS应用程序一样closures垂直滑动即可closures的function

我目前有ViewPager水平排列的视图,并可以循环他们与PagerAdapter。 目前,为了执行我想要刷卡的操作,我必须在视图的页面上双击。 我可以发布代码,但是提取必要的作品有些困难… 我想要的是在这些视图上垂直滑动的能力,让它们通过轻扫和淡出垂直翻译,然后在距离设备边缘一定距离时执行一个动作。 要了解我在想什么,在“图库”应用程序中,您可以捏合打开的照片以缩小并打开水平幻灯片视图。 从那里你可以向上(或向下)的照片/video删除它。 对于那些没有相同的图库应用程序,这就像在iOS上closures应用程序。 我已经尝试扫描图库应用程序的源代码,但没有find正确的活动运气。

BottomSheetDialogFragment中的ViewPager

我试图在BottomSheetDialogFragment中设置一个viewpager,但总是有相同的结果: java.lang.IllegalStateException:Fragment没有视图 setupDialog 码: @Override public void setupDialog(Dialog dialog, int style) { Log.d(TAG, "setupDialog"); super.setupDialog(dialog, style); View root = View.inflate(getContext(), R.layout.fragment_daily_detail, null); dialog.setContentView(root); CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) ((View) root.getParent()).getLayoutParams(); CoordinatorLayout.Behavior behavior = layoutParams.getBehavior(); if (behavior != null && behavior instanceof BottomSheetBehavior) { bottomSheetBehavior = (BottomSheetBehavior) behavior; bottomSheetBehavior.setBottomSheetCallback(mBottomSheetBehaviorCallback); bottomSheetBehavior.setPeekHeight((int) getResources().getDimension(R.dimen.fragment_forgot_password_min_height)); Log.d(TAG, "State: " + bottomSheetBehavior.getState()); imageClose […]

片段中的ViewPager在返回时丢失内容

我正在实施tabhost使用FragmentActivity ,在第一个选项卡下我加载一个包含一个CirclePageIndIcator和CirclePageIndIcator的欢迎片段,我需要加载4个视图在CirclePageIndIcator 这是我的WelcomeFragment public class WelcomeFragment extends Fragment { PageAdapter mAdapter; ViewPager mPager; CirclePageIndicator mIndicator; List<Fragment> fragments; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.frag_welcome_layout,null); mPager=(ViewPager)view.findViewById(R.id.myViewPager); mIndicator=(CirclePageIndicator)view.findViewById(R.id.circlePageIndicator1); fragments=new ArrayList<Fragment>(); return view; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Fragment fragment; for(int i=0;i<4;i++) { fragment= Fragment.instantiate(getActivity(), TipsFragment.class.getName()); fragments.add(fragment); } […]

ViewPager – 并不总是调用onCreateView

我有一个10页的ViewPager。 当我启动最后(第10)页onCreateView()我的片段的方法被调用。 当我滑动到第9页onCreateView()也被调用。 但是当我回到第十页onCreateView()没有被调用。 怎么了?