Articles of android viewpager

查看寻呼机和片段生命周期

我有一个ViewPager,一次加载三个页面。 如果我从第1页到第2页再扫描到第3页,则第一页(片段)转到onPause() 。 然后,如果我滑动到第二页,即使页面1仍然对用户不可见,第一页也会转到onResume() 。 所以,我的问题是:如何区分代码中的第一页和第二页? 例如,如果我必须在片段可见时运行一段代码,那该怎么办?

如何在ViewPager中从服务器上播放VideoView上的video

我尝试开发一个应用程序, 从服务器检索video,并在viewpager内的videoview上播放,来自原始文件夹的video工作正常,但它们是2个问题: 1:某些video未播放。 或黑色活动表演。 2:滚动页面时video不会停止。 所以如何使用URL而不是` android.resource://mypackagename/video1.mp4 以及如何在PageIsChanged时暂停/停止。 任何教程或任何点击我会感激。 这里我的代码是源代码 ViewPagerAdapter.java import android.content.Context; import android.media.MediaPlayer; import android.media.MediaPlayer.OnPreparedListener; import android.net.Uri; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.MediaController; import android.widget.TextView; import android.widget.VideoView; public class ViewPagerAdapter extends PagerAdapter { Context context; String[] rank; String[] country; String[] population; int[] flag; […]

在TabLayout(材料设计)android中动态添加和删除选项卡

我有一个TabLayout,里面有ViewPager。 我需要在tablayout(材料设计)中动态添加和删除选项卡。 我可以动态添加选项卡,但在删除选项卡时,选项卡正在正确删除。 但是viewpager最后一项被删除了。 因此tab没有显示特定的片段。 仅供参考我使用了FragmentPagerAdapter。 我已按照本教程实现了这一点 https://androidbelieve.com/navigation-drawer-with-swipe-tabs-using-design-support-library public class TabFragment extends Fragment { public static TabLayout tabLayout; public static ViewPager viewPager; public static int int_items = 2; private MyNewsFragment mMyNewsFragment; private ArrayList mFragmentArrayList; private TabLayoutAdapter mTabLayoutAdapter; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mMyNewsFragment = new MyNewsFragment(); /** *Inflate tab_layout […]

在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正确的活动运气。