Articles of android viewpager

带有ViewPager的Android ClassNotFoundException

我收到以下错误,我不明白… 06-15 22:06:49.196: W/dalvikvm(17622): threadid=1: thread exiting with uncaught exception (group=0x40bcc1f8) 06-15 22:07:05.031: W/dalvikvm(17877): threadid=1: thread exiting with uncaught exception (group=0x40bcc1f8) 06-15 22:07:05.031: E/AndroidRuntime(17877): FATAL EXCEPTION: main 06-15 22:07:05.031: E/AndroidRuntime(17877): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.whipple.android/com.whipple.android.StockActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class ViewPager 06-15 22:07:05.031: E/AndroidRuntime(17877): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1968) 06-15 22:07:05.031: E/AndroidRuntime(17877): at […]

在第一页上select的ViewPager onPageSelected

所以看起来在使用ViewPager时,onPageSelected监听器不会像第一页那样被调用。 我有一些逻辑,为当前选定的页面填充一些更昂贵的UI元素,这在页面更改时有效,但it doesn't work for the first page. 如果我在侦听器之后设置了当前项目,callback会被触发,但是视图尚未初始化,所以我无法操作它: // Inside PagerAdapter.instantiateItem ViewHolder vh = new ViewHolder(); cursor.moveToPosition(position); vh.view = adapter.newView(context, cursor, null); // Set position as tag so we can retrieve it with findViewByTag vh.view.setTag(position); ((ViewPager) collection).addView(vh.view,0); return vh; // Inside MyActivity.onCreate pagerAdapter = new SingleMessagePagerAdapter(this, cursor); pager = (ViewPager)findViewById(R.id.message_pager); pager.setAdapter(pagerAdapter); pager.setOnPageSelectedListener(this); pager.setCurrentItem(selectedItem); // […]

在ScrollView中的ViewPager

我需要在ScrollView有一个ViewPager但ViewPager在ScrollView中不会出现,当我不使用ScrollView时候一切正常。 我见过这样的问题在这里被问到在这里stackoverflow或在其他网站上,他们都已经被回答说,你必须把android:fillViewport="true"到你的滚动视图来解决这个问题,但这个解决scheme不工作对我来说,即使我在我的ScrollView有android:fillViewport="true" , ViewPager仍然不会出现。 我想在android api的东西有所改变,这个解决scheme不工作了,有没有人知道我怎么可能使一个ViewPager出现在ScrollView ? 更新:一个工作的滚动视图布局XML: <ScrollView android:id="@+id/scrollView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:fillViewport="true"> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <android.support.v4.view.ViewPager android:id="@+id/itemsViewPager2" android:layout_width="fill_parent" android:layout_height="wrap_content" > </android.support.v4.view.ViewPager> </LinearLayout> </ScrollView>

Android:ViewPager卡在视图之间

我有一个在碎片之间滑动的ViewPager。 我正在使用FragmentStatePagerAdapter将碎片提供给ViewPager。 如果用户以正常速度向左滑动,然后迅速向右滑动,则可以使ViewPager进入奇怪状态,显示多个碎片。 例如,如果用户在片段A上,然后以正常速度向左滑动到片段B,然后快速向右滑动以返回片段A,然后在屏幕上显示片段A和B. 任何人有什么想法,为什么这是发生或防止它的一个好办法? 以下是它的样子: 这是我在XML中的ViewPager定义: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <com.company.views.CustomActionBar android:id="@+id/customActionBar" android:layout_width="match_parent" android:layout_height="@dimen/height_actionbar" android:layout_alignParentTop="true"/> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/customActionBar"/> 另外,我logging了我的onPageChangeListener()的输出,注意到当ViewPager卡在视图之间时,报告一个positionOffset为0.这是ViewPager的值,当它从STATE_DRAGGING过渡到STATE_SETTLING到STATE_IDLE时,奇怪的状态: 状态= 0 prevState:2位置:1 positionOffset:0.0 状态= 1 prevState:0位置:1 positionOffset:0.0 state = 2 prevState:1 position:1 positionOffset:0.4069444 状态= 0 prevState:2位置:2 positionOffset:0.0 所以看起来好像ViewPager是把错误的位置报告给我的。 完整的示例代码活动和适配器: public class ActivityBagelProfileViewer extends CustomAbstractFragmentActivity implements CustomActionBarContract, ListenerProgress, ListenerSync { public static final […]

ViewPager中的button滚动到特定页面

我的ViewPager中的一个布局有一个button。 “R.layout.add_site”。 我想要按下button的选项,并滚动到我的具体页面。 我已经可以select滑动到特定的页面,但我想要两个。 现在我确信有办法做到这一点,但由于某种原因,我无法弄清楚。 你会看到我已经做了一个尝试,但只是不知道要调用什么方法,使其滚动到所需的页面。 这是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 […]

Android PagerAdapter,获取当前位置

我想获得我的PagerAdapter的可见视图的当前位置 我没有看到像getPosition()这样明显的function,我想要一个。 我想在这个位置添加一个对象到它的数组列表中,但是我需要先知道它

RecyclerView项目不会更改

我有一个在TabLayout中重复的片段中的RecyclerView。 我有在RecyclerView中的视图不变的问题。 每个标签上都有一个微调框。 我想在select微调项目时更改数据。 我的情况: 当切换标签 – 项目改变 当在第一个选项卡中的微调器中select另一个值 – 项目没有改变 。 (但是数据在适配器类中是变化的,也就是说,首先在select过程中不是null,那么就是null,但是第一个没有空的数据不会出现,用null代替,用断点find)。 注意:在这种情况下,切换选项卡时,项目会变成前一选项卡中的微调选框选项。 然后它消失并在选项卡中显示当前项目。 当在最后一个选项卡中的微调框中select另一个值 – 项目更改 。 我的浏览器适配器类 public class StudentViewPagerAdapter extends FragmentStatePagerAdapter { private final List<StudentList> mFragmentList = new ArrayList<>(); private final List<Clazz> mFragmentTitleList = new ArrayList<>(); public StudentViewPagerAdapter(FragmentManager fm) { super(fm); } public void addFragment(StudentList fragment,Clazz clazz){ mFragmentList.add(fragment); mFragmentTitleList.add(clazz); } @Override […]

FragmentManager IllegalStateException:没有主机

更新 :当我把nullcheks(片段!= null,getActivity()!= null)崩溃了,无论我能。 我的应用程序正在使用ViewPager (屏幕外限制5)与FragmentStatePagerAdapter与getSupportFragmentManager()初始化。 每个页面都有它自己的碎片和后台堆栈。 应用程序在启动时崩溃。 问题只出现在preLollipop设备和模拟器上。 使用最新的支持lbrary(也尝试24.0.0 – 相同的结果)Stacktrace: java.lang.IllegalStateException:android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1273)在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1268)android.support上没有主机.v4.app.FragmentManagerImpl.dispatchCreate(FragmentManager.java:2138)at android.support.v4.app.Fragment.onCreate(Fragment.java:1254)at android.support.v4.app.Fragment.performCreate(Fragment.java :2062)at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1051)at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1286)at android.support.v4.app。 BackStackRecord.run(BackStackRecord.java:758)at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:1632)at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:637)at android在android.support.v4.view.ViewPager.pop上的.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:166) ulate(ViewPager.java:1237)在android.support.v4.view.ViewPager.populate(ViewPager.java:1085)在android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1611)在android.view .View.measure(View.java:16497)at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)at android.widget.LinearLayout.measureVertical( LinearLayout.java:695)在android.view.View.measure(View.java:16497)android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)android.widget.LinearLayout.onMeasure(LinearLayout.java:588) )android.widget.FrameLayout.onMeasure(FrameLayout.java:310)在android.widget android.widget.RelativeLayout.measureChildHorizo​​ntal(RelativeLayout.java:719)android.view.View.measure(View.java:16497) .RelativeLayout.onMeasure(RelativeLayout.java:455)at android.view.View.measure(View.java:16497)at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)at android.widge t.FrameLayout.onMeasure(FrameLayout.java:310)at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)at android.view.View.measure(View.java:16497)at android.view .ViewGroup.measureChildWithMargins(ViewGroup.java:5125)at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)at android.view.View.measure(View.java:16497)at android.view.ViewGroup.measureChildWithMargins( (ViewGroup.java:5125)在android.view.View.measure(View.java:16497)android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)android.widget.FrameLayout.onMeasure(FrameLayout.java:310) )在android.widget.Lineout.measureChildChildChildChildChildChildChildVertical(LinearLayout.java:695)在android.widget.LinearLayout.onMeasure(LinearLayout.java:588)在android.view上的(LinearLayout.java:1404)在android.widget.LinearLayout.measureVertical .View.measure(View.java:16497)at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 在android.view.View.measure(View.java:16497)在android.view.ViewRootImpl.performMeasure(ViewRootImpl.java)com.android.internal.policy.impl.PhoneWindow $ DecorView.onMeasure(PhoneWindow.java:2291) :1912)at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1109)at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1291)at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:996)at […]

如何禁用ViewPager向一个方向滑动

我想只允许用户在一个ViewPager从右向左滑动。 所以一旦他通过一页,他不能回到它。 如何才能做到这一点? 我试过这个解决scheme: public class CustomViewPager extends ViewPager { float lastX = 0; boolean lockScroll = false; public CustomViewPager(Context context, AttributeSet attrs) { super(context, attrs); } public CustomViewPager(Context context) { super(context); } @Override public boolean onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: lastX = ev.getX(); lockScroll = false; return super.onTouchEvent(ev); case MotionEvent.ACTION_MOVE: if […]

有没有一种方法来禁用viewPager滚动到边缘的褪色?

可滚动视图(如ListView)沿着没有内容的边缘呈现淡蓝色效果,并滚动到结尾。 我怎样才能closures效果? 在列表视图我可以使用: setHorizontalFadingEdgeEnabled(false); android:fadingEdge="none" android:requiresFadingEdge="none" 但是在viewPager中没有用处,可以给我一些build议