Articles of android viewpager

在Android 4.4设备上看不到工具栏和TabLayout

我试图通过参考[ http://blog.grafixartist.com/material-design-tabs-with-android-design-support-library/] [博客]使用谷歌设计库来实现工具栏和TabLayout。 输出在Lollipop设备上按预期工作,但它不会在Kitkat设备上显示ToolBar和TabLayout。 但我仍然可以按预期在kitkat设备上滑过3个片段。 为什么使用谷歌支持库编写的相同代码在不同设备上的工作方式不同! 我试着提到[ 工具栏在Android 4.X设备上不可见[已解决]问题,但它没有解决问题。 我尝试使用API​​ 19在模拟器中运行代码,但同样面临同样的问题。 我添加了’com.android.support:appcompat-v7:22.2.0’和’com.android.support:design:22.2.0’依赖项该项目。 activity_main.xml中 MainActivity.java public class MainActivity extends AppCompatActivity { public ViewPager viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); viewPager = (ViewPager) findViewById(R.id.viewpager); setupViewPager(viewPager); TabLayout tabLayout = (TabLayout) findViewById(R.id.tablayout); tabLayout.setupWithViewPager(viewPager); tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab […]

ListView中的ViewPager和OnItemClickListener

我正在创建一个轻扫到列表视图适配器。 我的基本方法是将列表项的视图包装为ViewPager中的第二个视图,并在ViewPager的项更改侦听器中提供必要的回调。 通过很多痛苦我已经使View回收器按预期工作,以及实现了ViewHolder和ViewBinder模式。 我甚至设法阻止ListView在ViewPager滚动时接管触摸事件,而不必创建ListView的自定义子类(我可以从适配器完成所有操作)。 我遇到麻烦的地方是让选择器和OnItemClickListener工作。 在查看ListView的源代码之后,似乎通过重写ViewPager的hasFocusable()方法总是返回false(稍后我将从子视图中提取此值)这些内容应该已经重新启用。 不幸的是,这种情况并非如此。 我已经尝试了setDecendantFocusability()解决方法,但我仍然卡住了。 我想避免在可能的情况下扩展ListView以提供最大程度的模块化。 出于类似的原因,我不想将选择器添加到ViewPager的背景中(如果dev更改了ListView的选择器,则不会反映这一点)。 本质上,我希望在ListView和子视图之间使ViewPager代码透明。 有任何想法吗?

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

当项目在屏幕边缘(左侧或右侧)附近拖动时,我需要实现当前标签更改。 拖拽N下降function和当前选项卡切换没有问题。 我只是无法正确处理此事件 – 当拖动项目靠近屏幕边缘时。 你会怎么做? 我尝试了什么: 我们的想法是在切换区域拖动项目时以编程方式更改当前选项卡。 但是,该区域上的事件DragEvent.ACTION_DRAG_ENTERED永远不会发生,因为(我相信) GridView占据了整个屏幕,并且只是与切换区域重叠。 我已经尝试在触发拖动启动事件时将这些区域带到前面。 但由于某种原因,这不起作用。 FrameLayout toggleView = (FrameLayout) v; toggleView.bringToFront(); toggleView.requestLayout(); toggleView.invalidate(); 如果有人遇到这样的问题,请分享您的经验。 或许还有另一个更好的解决方案。 请给我一个提示。

使用NestedScrollView处理VerticalViewPager的滚动

背景: 我使用的是ViewPager的变体,它不是在水平方向上滚动,而是在垂直方向上滚动。 VerticalViewPager : https : //android.googlesource.com/platform/packages/apps/DeskClock/+/master/src/com/android/deskclock/VerticalViewPager.java android.support.v4.app.FragmentStatePagerAdapter用于设置VerticalViewPager的内容。 每次调用FragmentStatePagerAdapter getItem() ,我都会从FragmentStatePagerAdapter创建并返回一个新的android.support.v4.app.Fragment实例,如下所示: @Override public Fragment getItem(int position) { return PreviewFragment.getNewFragmentInstance(position); } PreviewFragment呈现可能不适合屏幕的内容。 为了显示不适合屏幕的所有内容, android.support.v4.widget.NestedScrollView用作PreviewFragment布局的父元素。 问题: PreviewFragment内容按预期滚动到位置0。 但是,为了切换到下一页,必须多次执行甩动或滑动操作,因此向位置1的页面滑动是非常困难的。 此外,投掷或滑回到位置0非常困难或几乎不可能。 需要: Fling或滑动或切换到PreviewFragment下一个实例应该是平滑的。 换句话说,滚动内容应该是平滑的,同时请记住,滑动到下一页也应该顺利工作。 如上所述链接到示例项目

更改Android Viewpager中的pagetitle

我有一个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(); } 现在我想更新上一​​个和下一个片段的页面标题。 我想将它们命名为“previous”和“next”。 它也应该在后续页面上动态更新。 我能够获得当前页面标题号。 例如,当我查看第5个片段时,当前片段将正确显示标题。 在ViewPager的两个角上,它显示左侧的上一页标题编号和右侧的下一页标题编号。 现在,我希望左侧的“上一个”和右侧的“下一个”页面标题类似于Gmail应用程序以及它如何显示ViewPager中的邮件计数。 […]

ViewPager中的PagerTabStrip位置

我有以下代码: 一切都像它应该的那样布局。 我现在想要的是PagerTabStrip覆盖了ViewPager 。 它应该在顶部呈现而不占用任何布局空间。 基本上,ViewPager中的片段应该像PagerTabStrip一样从0开始。 任何帮助赞赏。 谢谢!

Android ViewPager在容器中替换时不调用onDetach / onDestroy / onDestroyView

我有一个FrameLayout容器,我在其中使用replace方法在从导航抽屉中选择一个项目时放置一个片段。 getSupportFragmentManager().beginTransaction().replace(R.id.container, fragment, fragment.getFragmentTag()).commit(); 我有一个片段,里面有一个ViewPager。 我有3个片段,使用ViewPager以标签布局显示。 当我从导航抽屉中选择另一个项目时,将替换ViewPager中的片段,但其中的片段不会分离。 系统只使用ViewPager onDetach / onDestroy等方法调用片段,但不调用它包含的片段的方法。 我正在使用FragmentPagerAdapter,我尝试使用FragmentStatePager适配器。 没有什么变化。 我使用默认的setOffscreenPageLimit(1); 如何调用我的ViewPager片段方法onDetach / onDestroy? 谢谢!

指标元素之间的空间

如何在ViewPagerIndicator增加/减少指标元素之间的空间?

Viewpager被推出屏幕

我有一个简单的应用程序与viewpager包含3个片段。 在其中一个片段中,我有Recyclerview列表。 向下滚动时,工具栏将折叠,并显示向上滚动时。 我的问题是当工具栏折叠并且我向左/向右滚动时我会以编程方式展开它并且它会将viewpager向下推,而不是仅仅重叠它。 这导致屏幕视图的不令人满意的位移。 如何让工具栏与我的viewpager重叠,而不是在展开时将其向下推? 我对问题点击进行了简短记录 这是我的main_layout: 这是包含recyclerview布局的片段: content_main布局:

ListView中的ViewPagers显示空白列表项

[编辑] :谢谢你们所有有意义的答案,现在问题解决了,谢谢你的帮助。 类似的问题: Android:我无法拥有ViewPager WRAP_CONTENT 我正在尝试实现我的应用程序的UI:我希望每行都有一个带ViewPager的ListView 。 这是我的文件: MainActivity.java package com.condi; import android.app.ListActivity; import android.os.Bundle; import android.view.Menu; public class MainActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setListAdapter(new CardListAdapter(this, getFragmentManager())); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } } CardListAdapter.java package com.condi; import java.util.List; import android.app.FragmentManager; import […]