Articles of android viewpager

在Android中的ViewPager中禁用和启用分页

我使用Android兼容包版本4在我的应用程序中显示pdf页面。 我使用PagerAdapter和ViewPager来显示水平滚动视图等pdf页面。 现在问题在于分页相关的东西。我能够通过检测viewpager中的subprocess根据这个线程android:ViewPager和Horizo​​ntalScrollVIew来停止分页,但是当用户触摸到该视图之外时,我该如何才能启用它。 我使用了以下用于CustomViewPager的代码。 public class CustomViewPager extends ViewPager { private boolean enabled; private int childId; public CustomViewPager(Context context, AttributeSet attrs) { super(context, attrs); this.enabled = true; } public void setChildId(int childId) { this.childId = childId; } @Override public boolean onInterceptTouchEvent(MotionEvent event) { boolean result = false; View scroll = getChildAt(childId); if (scroll != null) […]

在FragmentPageAdapter的中间插入页面

我正在使用ViewPageIndicator中的ViewPager ,我需要能够在其他人的中间 动态插入一个片段。 我试图用FragmentPagerAdapter和FragmentStatePagerAdapter (都来自v4支持代码)管理模型,第一个似乎不管理中间插入页面的任何方式。 第二个只有当我做一个天真的getItemPosition实现返回总是POSITION_NONE但这会导致每次刷卡时完全重新创建页面。 我用FragmentStatePagerAdapter(FSP)观察到的问题是这样的: 我从两页开始[A] [B] 然后我在中间插入[C] [A] [C] [B]。 插入后我调用notifyDataSetchange() 然后FSP为[A]调用getItemPosition并获得0 然后FSP为[B]调用geTItemPosition并得到2.它说……哦,我要销毁[B]并制作mFragments.set(2,null)然后因为它只有两个元素在mFragments数组中它会抛出IndexOutOfBoundsException 看了一下代码之后,似乎提供的fragmentStatePagerAdapter不支持插入中间。 这是正确的还是我错过了什么? 更新:适配器中的插入是以逻辑方式进行的,当某个编码为真时,页面会增加1。 片段创建是使用getItem()中的构造函数以这种方式完成的: void setCondition(boolean condition) { this.condition=condition; notifyDataSetChanged(); } public int getCount(){ return condition?3:2; } public Fragment getItem(int position) { if(position==0) return new A(); else if(position==1) return condition?new C():new B(); else if(position==2 && condition) return new B(); […]

在操作栏选项卡中滑动选项卡

我试图在flipBar标签中实现滑动标签,就像flipboard一样。 因此,其中一个主要标签将有三个标签。 子标签将首先滚动,一旦所有标签滚动,主标签就会聚焦并开始滚动。 我附上了flipBoard UI的截图 有没有人这样做过? 请帮忙。

滑动ViewPager时禁用ListView滚动

有没有办法在滚动ViewPager的项目时锁定ListView的垂直滚动? 或者可能更改ViewPager的水平滚动灵敏度? 谢谢。 最后编辑 这是我更新的解决方案。 感谢您回复Masoud Dadashi,您的评论最终让我想出了解决问题的方法。 这是我的自定义ListView类: public class FolderListView extends ListView { private float xDistance, yDistance, lastX, lastY; // If built programmatically public FolderListView(Context context) { super(context); // init(); } // This example uses this method since being built from XML public FolderListView(Context context, AttributeSet attrs) { super(context, attrs); // init(); } // […]

Android使用不带标签的ViewPager轻扫

我试图制作一个具有滑动导航types的应用程序。 这是我走了多远: 片段活动: package com.app.BoomBase; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class Fragment_control extends Fragment { String tag = this.getClass().getSimpleName(); @Override public void onCreate(Bundle savedInstanceState) { Log.i(tag, “onCreate”); super.onCreate(savedInstanceState); /** Getting the arguments to the Bundle object */ Bundle data = getArguments(); } @Override public View onCreateView(LayoutInflater inflater, […]

将子视图对齐ViewPager android的中心

我需要将子视图设置为ViewPager的中心,并且我还要向当前视图侧显示下一个和上一个视图的某些部分(如1下的当前屏幕)。 但目前当前视图从ViewPager的左侧开始(如预期的屏幕低于2)。 我怎样才能做到这一点? 这是我的代码.. MyViewPagerAdapter public class MyViewPagerAdapter extends PagerAdapter { private Activity mActivity; private int mPageCount; public MyViewPagerAdapter(Activity activity,int pageCount) { mActivity = activity; mPageCount = pageCount; } @Override public int getCount() { return mPageCount; } @Override public boolean isViewFromObject(View view, Object obj) { return (view ==(View)obj); } @Override public Object instantiateItem(ViewGroup container,final int […]

无法强制转换为自定义ViewPager类

我正在使用来自Chrisbanes Github的这个来源: https : //github.com/chrisbanes/PhotoView并尝试使用LinearLayout创建ViewPager但是在将ViewPager转换为HackyViewPager时出现错误这是我的xml(bacaan.xml): … 在ViewPagerActivity.java上,我改变了这个: mViewPager = new HackyViewPager(this); setContentView(mViewPager); mViewPager.setAdapter(new SamplePagerAdapter()); 对此: setContentView(R.layout.bacaan); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); ViewPager mViewPager = (HackyViewPager) findViewById(R.id.pager); mViewPager.setAdapter(new AdapterGambarPager()); 我确实发现必须使用包名称声明自定义View,就像我发现的这个问题: 在Android中创建自定义按钮类 所以我将xml ViewPager更改为我的包名,但仍然无效。 任何线索? 编辑:这是日志 06-14 21:01:05.901: E/AndroidRuntime(28345): FATAL EXCEPTION: main 06-14 21:01:05.901: E/AndroidRuntime(28345): java.lang.RuntimeException: Unable to start activity ComponentInfo{uk.co.senab.photoview.sample/uk.co.senab.photoview.sample.ViewPagerActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class uk.co.senab.photoview.sample.HackyViewPager […]

更改ViewPager和setCurrentItem的转换速度

我有一个ViewPager,我想每5秒自动旋转一次,同时也允许用户滑动。 但是,当我设置自动更改时,页面之间的过渡动​​画发生得非常快,我希望它更慢。 我在这里看到了这个问题的答案 在Android中Viewpager控制器的速度减慢 但他们都使用reflection。 有没有人知道如何在不使用reflection的情况下减慢ViewPager的自动速度? 我想过使用PageTransformer,但不确定它是否会起作用,如果用户滑动和自动滑动,它可能会影响速度? 除非我能以某种方式检测到差异,然后做一个或另一个PageTransformation?

如何在ViewPager中重新创建所有片段:

我有这个问题,我有一个带有ViewPager和ViewPagerAdapter 。 在这个ViewPager中,我有3个Fragments ,每个Fragments都包含一个TableLayout ,它使用2dArrayList编程方式填充。 在FragmentActivity布局中单击按钮时,我会过滤2dArrayList的数据,并且基本上需要使用新数据集重新创建所有3个Fragments (在所有这些中运行onCreateView方法)。 所以我为这个按钮创建了一个onClickListener : private class SlicerSelectedOnClickListener implements OnClickListener { private ODSharedSlicer slicer; public SlicerSelectedOnClickListener(ODSharedSlicer slicer) { super(); this.slicer = slicer; } public void onClick(View v) { String slicerValue = ((Button) v).getText().toString(); Log.d(TAG,”Slicer value: “+ slicerValue +” chosen”); application.currentReport.getODSharedSlicers().get(0).getSharedSlicerSelectedMemebers().add(slicerValue); ViewGroup parent = (ViewGroup) ((Button) v).getParent(); for (int i = 0; […]

如何自定义CirclePageIndicator?

我正在使用ViewPager和PagerAdapter在Android应用程序中获取XML的幻灯片。 我正在使用CirclePageIndicator为页面编号。 如何自定义当前页面对应的圆圈颜色?