Articles of android viewpager

在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>

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 […]

如何在触摸特定视图时禁用viewpager适配器?

我有一个viewpager切换标签时左/右滑动。在我的第二个选项卡中,我有一些自定义视图有听众捏和拖动,但是当我尝试捏或拖动viewpager开始滑动页面。 我想到的一个解决scheme是在触摸这些特定的视图时禁用轻扫,只有在触及这些视图之外时才轻扫。这是可能的吗? 更新: @Asok慷慨地提供了解决scheme。 但是,然后更新了代码,在我的情况下不会工作,所以我张贴了以前的代码为我工作: public class CustomViewPager extends ViewPager { private boolean swipeable = true; public CustomViewPager(Context context) { super(context); } public CustomViewPager(Context context, AttributeSet attrs) { super(context, attrs); } // Call this method in your motion events when you want to disable or enable // It should work as desired. public void setSwipeable(boolean […]

我如何告诉我的自定义FragmentPagerAdapter停止摧毁我的碎片?

我有一个ViewPager与FragmentPagerAdapter,我的应用程序以前只使用两个片段(不同types)没有问题。 不过,我刚刚添加了第三个片段,现在我的适配器/ viewpager似乎在我远离它们的时候正在销毁我的碎片。 例如,如果我在页面1上,则第3页会在我靠近时被销毁并重新创build。 如果我在第3页,则第1页也会发生同样的情况。 这在我的应用程序中造成了很多问题。 这些碎片根本不是很重,所以我怎么能阻止这种情况的发生呢?

ViewPager没有显示任何东西

我创build视图分页器与自定义视图分页适配器,但是当我运行该项目,我什么都看不到 public class CustomAdapter extends PagerAdapter { private List<NewsObject> newsObjects; private Activity mActivity; private LayoutInflater inflater; private ImageLoaderConfiguration imageConfig; private ImageLoader imageLoader = ImageLoader.getInstance(); public CustomAdapter(List<NewsObject> newsObjects, Activity mActivity) { super(); Log.d("Con :", "structor"); this.newsObjects = newsObjects; this.mActivity = mActivity; imageConfig = new ImageLoaderConfiguration.Builder( mActivity.getApplicationContext()).build(); imageLoader.init(imageConfig); } @Override public int getCount() { return this.newsObjects.size(); } […]

使用getItemPosition(Object对象)在FragmentStatePagerAdapter中重新sorting页面

我相信,当重写getItemPosition(Object object)时,FragmentStatePagerAdapter在重新sorting页面的时候并不正确。 下面是一个简单的例子。 在初始状态下,页面的顺序是{A,B,C}。 在调用toggleState() ,页面的顺序变为{A,C,B}。 通过重写getItemPosition(Object object) ,我们确保当前正在查看的页面(A,B或C)不会改变。 public static class TestPagerAdapter extends FragmentStatePagerAdapter { private boolean mState = true; public TestPagerAdapter(FragmentManager fragmentManager) { super(fragmentManager); } @Override public int getCount() { return 3; } private void toggleState() { mState = !mState; notifyDataSetChanged(); } private String getLabel(int position) { switch (position) { case 0: return […]

ViewPager随着时间的推移碎片被破坏?

我正在使用Android的support.v4包来开发包含多个Fragment的ViewPager。 我想在用户更改页面时隐藏视图。 所以,我实现了一个OnPageChangeListener来监听我的适配器,并在发生页面更改时调用我的Fragment的update()方法。 但是我得到一个NullPointerException ,我不明白为什么。 这里是代码: public class MyActivity extends FragmentActivity implements OnPageChangeListener { private static final int NUM_ITEMS = 2; private ViewPager mPager; private static SpaceAdapter mAdapter; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_pager); mAdapter = new SpaceAdapter(getSupportFragmentManager()); mPager = (ViewPager) findViewById(R.id.pager); mPager.setAdapter(mAdapter); mPager.setOnPageChangeListener(this); […]

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 […]

如何禁用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 […]

有人知道如何在Android中使用PagerTitleStrip

我决定在我的应用程序中使用ViewPager ,一切工作正常。 我知道我想在PagerTitleStrip中使用ViewPager ,但是我没有find任何有关如何做的信息…我在这个类上find的唯一页面(sic !!)是http:// developer.android.com/reference/android/support/v4/view/PagerTitleStrip.html所以看来我只是需要在我的ViewPager布局中添加PagerTitleStrip ,但我没有看到我的活动上有什么新的… <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v4.view.PagerTitleStrip android:id="@+id/pagerTitleStrip" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" /> </android.support.v4.view.ViewPager> 有谁知道如何使用它? 编辑:对不起,它实现getPageTitle中的getPageTitle方法…但我不想显示任何文本,只是一个小光标显示当前视图的位置相比,前一个和下一个…