Articles of android viewpager

使用ViewPager在多个TextViews / Fragments中拆分文本

我正在尝试使用Android兼容性库将多个片段中的一些文本拆分到ViewPager中。 我们的想法是拥有类似于Kindle应用程序的东西,您可以在其中翻阅多页文本。 最初,我的文本源是strings.xml中定义的字符串,我使用算法来确定设备屏幕的高度,然后将此字符串相应地拆分为ViewPager的多个项目。 由于你无法提前获得TextView的高度,我只是使用百分比值来确定在每个页面上设置TextView的最大大小(这看起来有点难看)。 这看起来像是一种合理的方法,还是我会以错误的方式解决这个问题?

退出转换不适用于片段中ViewPager中的ImageView共享元素

在我的应用程序中,我有一个Activity启动另一个带有Fragment的Activity,其中包含一个ViewPager图像。 我目前工作的是输入转换,其中第一个Activity启动第二个,转换是正确的。 这是有效的,因为在我的ViewPager中我放了一个OnPreDrawListener ,只在加载了寻呼机中的图像时才恢复活动转换。 它看起来像这样: public class ImagePagerAdapter extends PagerAdapter { // Constructor and other things.. @Override public Object instantiateItem(ViewGroup container, final int position) { ImageView imageView; if (position == 0) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // Shared element is the first one. ViewCompat.setTransitionName(imageView, “sharedImage”); } } imageView = new ImageView(activity); // Just a […]

Android ViewPager手动调用PageTransformer transformPage

我有一个带有PageTransformer实现的ViewPager,它为ViewPager的下一页做了一些时髦的东西。 我的实现看起来像这样: class ZoomOutPageTransformer implements ViewPager.PageTransformer { private static final float MIN_SCALE = 0.85f; private static final float MIN_ALPHA = 0.5f; @Override public void transformPage(View view, float position) { int pageWidth = view.getWidth(); if (position < -1) { // [-Infinity,-1) // This page is way off-screen to the left. view.setAlpha(0); } else if (position <= […]

Android – 根据每个viewpager recyclelerview激活appbar滚动

我有一个ViewPager,其中包含2个包含Recyclerview的选项卡。 我正在使用支持库22.2.0(AppCompat,Recycler view …)。 我的viewpager xml最初是: 我想激活/停用appbar在每个tab / recyclerview的基础上滚动而不是整个viewpager,也就是说,一个tab / recyclerview将使appbar滚动而另一个tab / recyclerview不会。 这个问题是当我删除 app:layout_behavior=”@string/appbar_scrolling_view_behavior” 从viewpager,一个默认的layout_behavior应用于viewpager,它仍然激活tab / recyclerview上的appbar滚动。 我的策略是在viewpager中停用appbar滚动,可能是这样的: 并仅在我的第一个标签/ recyclerview上激活它。 喜欢这个 : <android.support.v7.widget.RecyclerView … android:id="@+id/playlist1_rv" app:layout_behavior="@string/appbar_scrolling_view_behavior" 但我需要一个“@ string / appbar_desactivated_behavior”的课程。 它存在吗? 不是,怎么写呢? 或者您考虑另一种策略? 提前致谢。

当方向改变时,ViewPager内部的碎片消失

我已经阅读了几篇关于此的post( http://tinyurl.com/pb8es74,http://tinyurl.com/p9pcfcv .. ),但无法find解决方案。 我有一个MainActivity,它加载一个包含ViewPager的布局,其中包含三个片段(根据方向有不同的布局)。 我已将此function添加到活动中,因此当方向更改时它不会被销毁,因为我可能会打开一些对话框或popup窗口: android:configChanges=”keyboardHidden|orientation|screenSize|screenLayout|uiMode” 因此,我已经覆盖了方法“onConfigurationChanged”,它只调用方法loadLayout,其中有关视图的所有内容: private void loadLayout() { setContentView(R.layout.layout_main_activity); pager = (ViewPager) this.findViewById(R.id.pager); pager.setPageTransformer(true, new DepthPageTransformer()); adapter = new MyFragmentPagerAdapter(getSupportFragmentManager()); adapter.addFragment(Fragment1.getInstance()); adapter.addFragment(Fragment2.getInstance()); adapter.addFragment(Fragment3.getInstance()); pager.setAdapter(adapter); pager.setOffscreenPageLimit(2); //Media controllers imgMediaController= (ImageButton) findViewById(R.id.media_controller); imgMediaController.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { […] } }); imgVolumeController= (ImageButton) findViewById(R.id.volume_controller); gM.setImgVolumeController(imgVolumeController); imgVolumeController.setOnClickListener(new View.OnClickListener() { public void onClick(View […]

具有ViewPager组合的ExpandableListView作为其子项

更新 – 添加实验结果 是否可以实现ExpandableListView以拥有viewpager子项? 我试图将viewpager作为子项放在ExpandableListView中,但它没有显示:(我也尝试在ScrollView下添加它但结果相同所以我认为这是一个可滚动视图下的问题?但是当我删除ScrollView时它出现了。我能做些什么才能一起去? 这就是我的目标 当我尝试在我自己的代码上实现时会发生这种情况。 PS这只是一个采样器,还没有完成。 我有3个孩子,我的布局显示三次,每个项目里面

在FragmentStatePagerAdapter中保存/更新Fragment的EditText数据

介绍 我有一个Book的活动,其中包含一个types为“page”的arraylist,并处理我决定使用FragmentStatePagerAdapter的所有页面,其中我的一个片段包含一个页面。 我为寻呼机中的每个片段和父活动之间的通信创建了一个接口。 我在这个接口中需要的方法是更新一个片段中显示的页面,所以我为父活动制作了工具,用于从片段接收​​数据的接口并将它们存储在页面中以保存在arraylist中。 每个片段都有一个EditText,用户可以在其中编写,我设置addTextChangedListener来捕获用户停止写入的时刻。 当用户停止在EditText中写入时,在onTextChanged()中,我调用activity activity中实现的函数。 这是我的活动代码 public class BookEditorActivity implements BookEditorFragment.EditorFrToEditorActInterface { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.book_editor_activity); Bundle extras = getIntent().getExtras(); b = (Book) extras.get(“book”); setBookViewPager(b); } private void setBookViewPager(Book b) { mBookViewPager = (ViewPager) findViewById(R.id.book_editor_pager); mBookViewPagerAdapter = new BookViewPagerAdapter(getSupportFragmentManager(), b); mBookViewPager.setAdapter(mBookViewPagerAdapter); } @Override public void saveBookPageTextContent(String textContent) { int […]

动态设置查看寻呼机高度

我将View Pager作为List Item行,我将数据设置到寻呼机的适配器以显示在列表视图中。这是我的代码: Pager_Item布局 列表视图行项目 ListView GetView ViewHolder holder; if(rowView==null){ holder = new ViewHolder(); LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); rowView = inflater.inflate(R.layout.horizontal_list_item, parent,false); MyPagerAdapter adapter = new MyPagerAdapter(context); ViewPager myPager = (ViewPager) rowView.findViewById(R.id.mypager); myPager.setAdapter(adapter); myPager.setCurrentItem(4, true); rowView.setTag(holder); } else{ holder = (ViewHolder) rowView.getTag(); } MyPagerAdapter @Override public Object instantiateItem(View container, final int position) { […]

在Fragment级别应用的滑动手势以及ViewPager的默认滑动已禁用

我发现了以下问题: Android:FragmentActivity中的FragmentActivity(导航栏中的Scrollview) 。 然而,我的这个问题是关于如何使用事务来显示片段以及以安全的方式启用滑动手势检测。 注意:我发布的答案中有一个链接(这也是使用事务在容器中显示片段的有效方法,包括两个方案)。 请看那个。 我已经尝试了一些问题,但是通过使用支持ViewPager的片段,而不是嵌套: 详细信息: https : //moqups.com/abhsax130778@gmail.com/lc0ZOERO/p : a5d7b55eb 使用onTouchEvent和onInterceptTouchEvent使用自定义ViewPager禁用默认滑动。 声明FragmentStatePagerAdapter提供了一个片段列表,每个片段都显示在每个选项卡中。 在具有此ViewPager的main_activity的main_layout中声明Fragment。 想法是在单击ViewPager_fragment上的按钮时以及当用户按下返回按钮时显示activity_fragments,然后使用添加的后堆栈事务再次显示默认的ViewPager_fragment,并在活动的BackPressed上popup它们。 因此,当后端堆栈popup事务时,我也维护我的自定义backStack来显示/隐藏activity_fragments。 现在我想要实现的是使用滑动手势进行上面的第三点,仅用于从右向左滑动。 我已经使用了GestureListener和SimpleOnGestureListener以及activity的OnTouchEvent。 我面临的问题是: 该手势在活动屏幕的位于片段下方和活动部分的部分上起作用。 我希望手势有效 在片段区域中,其布局中具有多个视图。 只在左右方向。 仅从activity_fragment到ViewPager的选项卡片段,就像使用后台堆栈popup窗口和我的自定义后台堆栈在onBakPressed / onKeyDown实现中已经完成的那样,就像历史导航一样。 我尝试了以下类,并在这样的布局中更改了我的活动片段。 My Gesture和Touch监听器扩展了框架布局: public class OnSwipeTouchListener extends FrameLayout { private final GestureDetector gestureDetector; private static final String TAG = “OnSwipeTouchListener”; private Context context; public OnSwipeTouchListener(Context context, AttributeSet […]

使用fragmentStatePagerAdapter更新viewpager中的片段/视图

在使用viewpager时我需要帮助解决更新页面的问题。 我正在使用FragmentStatePagerAdapter的简单viewpager。 我想要做的就是访问当前的片段/视图,以便我可以更新片段/视图中的一些textview。 我在论坛中搜索并了解了一些事情 – 处理此问题的方法之一是在适配器的instantiateItem()调用中设置标记并通过findViewbyTag检索视图。 我无法理解如何实现这一点,我也不确定这是否适用于FragmentStatePagerAdapter。 – 我在各种论坛中探讨了其他选项,但无法使它们发挥作用。 我的代码与android http://developer.android.com/training/animation/screen-slide.html中的代码非常相似。 基本组件是相同的(片段活动xml,其中一些显示组件包括textview,viewpager xml只有一个视图分页器,一个Fragment类和主要的FragmentActivity类)。 在我的FragmentActivity类中,我向viewpager添加了一个pageChangelistener,以便在onPageSelected()期间进行textview更改。 任何帮助是值得赞赏的。 添加代码以供参考。 Public class myActivity extends FragmentActivity //Variable declarations protected void onCreate(Bundle savedInstanceState) { ViewPager mPager = (ViewPager) findViewById(R.id.pager); mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager()); mPager.setAdapter(mPagerAdapter); View CurrView; OnPageChangeListener pageChangelistener = new OnPageChangeListener() { @Override public void onPageSelected(int pageSelected) { doTextViewChnges();//access the text […]