Articles of android viewpager

Android:ViewPager卡在视图之间

我有一个在Fragments之间滑动的ViewPager。 我正在使用FragmentStatePagerAdapter将Fragments提供给ViewPager。 如果用户以正常速度向左滑动,然后非常快速地向右滑动,则可以使ViewPager进入奇怪状态,其中显示多个碎片。 例如,如果用户在片段A上,则以正常速度向左滑动到片段B,然后快速向右滑动以返回到片段A,然后在屏幕上显示片段A和B. 任何人都有任何关于为什么会发生这种情况的想法或一个预防它的好方法? 这是它的样子: 这是我在XML中的ViewPager定义: 此外,我记录了来自onPageChangeListener()的输出,并注意到当ViewPager卡在视图之间时,它报告的positionOffset为0.这是ViewPager的值在它登陆时从STATE_DRAGGING转换为STATE_SETTLING到STATE_IDLE的样子。奇怪的状态: state = 0 prevState:2 position:1 positionOffset:0.0 state = 1 prevState:0 position:1 positionOffset:0.0 state = 2 prevState:1 position:1 positionOffset:0.4069444 state = 0 prevState:2 position:2 positionOffset:0.0 所以看起来好像ViewPager正在向我报告错误的positionOffset。 完整示例代码活动和适配器: public class ActivityBagelProfileViewer extends CustomAbstractFragmentActivity implements CustomActionBarContract, ListenerProgress, ListenerSync { public static final String EXTRA_BAGEL_INDEX = “BAGEL”; public static final int […]

如何从活动(viewpager)更新片段内容?

我有一个带有两个片段的简单viewPager。 每个片段都包含一个TextView。 我希望能够更新活动中显示的当前textView的文本。 活动: public class MainActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); ArrayList fragments = new ArrayList(); fragments.add(Fragment.instantiate(this, Live.class.getName())); fragments.add(Fragment.instantiate(this, Hit.class.getName())); this.pagerAdapter = new MyPagerAdapter(getSupportFragmentManager(),fragments); ViewPager pager = (ViewPager) findViewById(R.id.viewpager); pager.setAdapter(pagerAdapter); } } 适配器: public class MyPagerAdapter extends FragmentPagerAdapter { private final ArrayList fragments; public MyPagerAdapter(FragmentManager fm, ArrayList fragments) […]

菜单选项卡不响应

目前我正在为我的应用制作用户界面。 我使用Sliding Up Panel和Sliding Tabs (带有实现说明的教程)function。 两者都很好。 我甚至设法在一个项目中实现它们,但这就是问题所在 – 当我触摸它们时(Home应该打开它所代表的页面),Home和Event的选项卡没有响应,但是当我在选项卡之间滑动时它们会发生变化。 这是我的布局代码。 这就是问题所在。 我敢肯定。 如果我删除添加了Sliding Up Panelfunction的部件,则单击function启用。 MainActivity.java public class MainActivity extends ActionBarActivity implements OnTouchListener{ // Declaring Your View and Variables Toolbar toolbar; ViewPager pager; ViewPagerAdapter adapter; SlidingTabLayout tabs; CharSequence Titles[]={“Side”,”Front”, “Result”}; int Numboftabs =3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Creating The […]

在恢复活动时刷新FragmentStatePagerAdapter上的图像

我创建了一个使用FragmentStatePagerAdapter提供小图库的活动。 但是,当活动恢复时(例如,从其他活动返回后),我无法刷新它。 每次前两张图片都是空白的,只有在我将两张图片刷到一边后,它们才会刷新。 我find的答案都没有起作用(尤其是覆盖getItemPosition() ) 我这样设置: mPagerAdapter = new PhotosPagerAdapter(getSupportFragmentManager()); mPager = (ViewPager) findViewById(R.id.photosViewPager); mPager.setAdapter(mPagerAdapter); 然后我有FragmentStatePagerAdapter类: private class PhotosPagerAdapter extends FragmentStatePagerAdapter{ public PhotosPagerAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return photos.size(); } @Override public Fragment getItem(int position) { ImageFragment f = new ImageFragment(position); return f; } @Override public int getItemPosition(Object object) { […]

ViewPager中的按钮滚动到特定页面

我的ViewPager中的一个布局有一个按钮。 “R.layout.add_site”。 我想选择按下按钮,它会滚动到我的特定页面。 我已经可以选择滑动到特定页面,但我想同时拥有这两个页面。 现在我确定有办法做到这一点,但由于某种原因,我无法弄明白。 你会看到我做了一个尝试,但只是不知道要调用什么方法,以使其滚动到所需的页面。 这是R.layout.main。 这是我的代码。 public class fieldsActivity extends Activity { Button addSiteButton; Button cancelButton; Button signInButton; /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // to create a custom title bar for activity window requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.fields); // use custom layout title bar […]

如何获取给定项目的ViewPager的子视图

我会尽可能简短而简单地回答这个问题。 View activeView = mViewPager.getChildAt(mViewPager.getCurrentItem()); 当前项为0和1时返回子视图。但如果当前项为2,则返回null 。 这是为什么? 编辑:让我重温一下自己。 如何在任何给定项目位置获取ViewPager的子视图?

如何从代码中设置PagerTitleStrip的TextColor,TextSize?

我试图从pagertitlestrip设置textsize和textcolor,但无法find方法。 编辑 main.xml中 style.xml @style/PagerTitleStripTextAppearance #FFFFFFFF 14sp 可惜我没有find从AttributeSet中获取它的方法,获得Resource NotFound或InvalidResource Exception。

以前的片段在新片段下可见

我有一个tab + ViewPager布局,在其中一个选项卡中我有一个列表视图。 当我在onclick上替换该列表片段时,我仍然可以看到新片段下的旧片段。 看到: 码: FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); HallsInStateFragment hallsForState = new HallsInStateFragment(); transaction.replace(R.id.container, hallsForState); transaction.addToBackStack(null); transaction.commit(); R.id.container是视图中的FrameLayout。

如何检测onTouch侦听器中的单击?

我在ScrollView有一个ViewPager 。 我需要能够水平滚动以及垂直滚动。 为了实现这一点,每当触摸我的ViewPager时,必须禁用垂直滚动( v.getParent().requestDisallowInterceptTouchEvent(true); ),以便它可以水平滚动。 但与此同时,我需要能够单击viewPager以全屏模式打开它。 问题是在onClick之前调用onTouch并且从不调用我的OnClick。 如何实现触摸onClick? viewPager.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { System.out.println(“TOUCHED “); if(event.getAction() == MotionEvent.???){ //open fullscreen activity } v.getParent().requestDisallowInterceptTouchEvent(true); //This cannot be removed return false; } }); viewPager.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { System.out.println(“CLICKED “); Intent fullPhotoIntent = new Intent(context, FullPhotoActivity.class); […]

无限的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 。