Articles of android viewpager

从下一个屏幕返回时,ViewPager数据丢失

我在我的应用程序中使用ViewPager,其中有三个选项卡; 我在片段中使用ViewPager。 现在我的问题是,我在加载应用程序时正确获取数据,但是当我进入下一页然后返回ViewPager时,数据丢失且标签不起作用。 请帮助我 以下是我的代码: import com.devpoint.rprtjobs.R; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTabHost; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.Toolbar; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.support.design.widget.TabLayout; public class MainActivity extends Fragment { // Declaring Your View and Variables Toolbar toolbar; ViewPager pager; SwipeViewPagerAdapter adapter; SlidingTabLayout tabs; CharSequence Titles[]={“OnGoing”,”UpComing”,”Expired”}; […]

未调用Android View onSaveInstanceState

我正在使用CustomView,它扩展了一些像FrameLayout这样的Android视图。 在我的布局中,我使用带有自定义PagerAdapter的ViewPager。 问题是当片段重新附加到ViewPager / Activity时,我的View 没有恢复它的状态 。 例如,我有三个片段,如果我滑到最后一个片段然后回到第一个片段,ScrollView就不是我允许的了:它返回默认值,在顶部。 我知道使用PagerAdapter,并非所有片段在同一时间都是活动的,基本上是+ 1 / -1。 我找不到为什么我的View.onSaveInstanceState()没有被调用,所以为onRestoreInstanceState。

FragmentPagerAdapter – 当用户转到新标签时如何检测滑动或标签点击?

我有一个MainActivity ,在FragmentPagerAdapter中有三个片段,如下所示。 如何通过滑动或单击选项卡,如何找出用户从第一个片段到第二个片段或从第二个片段到第二个片段的时间? 我看到getItem()方法不会被调用,因为我已经声明了mViewPager.setOffscreenPageLimit(2) ; public class MainThreeTabAdapter extends FragmentPagerAdapter { private final String[] CONTENT = new String[]{“News”, “Rewards”, “Me”}; public MainThreeTabAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { if (position == 0) { return NewsFragment.newInstance(); } else if (position == 1) { return RewardsFragment.newInstance(); } else if (position == 2) { […]

ScrollView中的ViewPager – 垂直滚动不起作用

所以,我有一个带有一个孩子的ScrollView一个有两个孩子的LinearLayout :一个TextView和一个ViewPager 。 ViewPager包含具有许多元素的布局,这就是我需要能够垂直滚动的原因。 只有ViewPager页面可以水平滚动(即:我只想在ViewPager水平滑动)。 一个TextView不能水平滚动,而应该与我的ViewPager一起滚动。 简单? 没有。 我在StackOverflow中看到了非常类似的问题( 这里 , 这里 , 这里和这里 )。 没有一个建议的解决方案适合我:( 我看到的是这个 < – 我的甜蜜UI :),但我无法垂直滚动:( 在ViewPager中嵌入ScrollViews不是一个选项 – UI的设计禁止这样做。 也许这是我用编程方式填充视图寻呼机中的每个页面的东西? 嗯… 任何建议,将不胜感激。 我的代码: activity_main.xml中: ViewPager中的每个页面都有这样的布局: 单个元素在这样的页面中的布局: 单页片段也很简单: public class DayFragment extends Fragment { private static final String TAG = DayFragment.class.getSimpleName(); public String tag; LinearLayout data; View mView; final int ROWS_NUM […]

Viewpager片段在第一次之后未显示

我有3个片段(A,B,C)的活动。 片段A由带有2个ListFragments 。 用户可以点击任何listfragments中的项目,然后执行此操作,转到片段B. 在片段AI做: @Override public void onAttach(Activity activity) { super.onAttach(activity); pagerAdapter = new PagerAdapter(getActivity().getSupportFragmentManager()); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragmentA, container, false); vpPager = (ViewPager)view.findViewById(R.id.vpPager); vpPager.setOffscreenPageLimit(2); vpPager.setAdapter(pagerAdapter); vpPager.addOnPageChangeListener(this); return view; } PagerAdapter如下: private class PagerAdapter extends FragmentPagerAdapter { private final ListFragment1 lf1 = ListFragment1 […]

ViewPager中的TextView拦截触摸事件

我有一个包含两个片段的ViewPager 。 在我可以触摸某个地方的任何片段中,滑动以切换到另一个fragment 。 其中一个片段包含一个列表。 列表中的项目包含一个TextView和一个ImageView 。 问题是,如果你从点击ImageView开始拖动就可以了。 但如果它来自TextView ,则ViewPager永远不会知道拖动,因此“平滑切换”永远不会发生。 这有什么线索吗? 编辑 这张照片是为了展示我的GUI。 如果已从TextViewE启动拖动,则不会开始拖动。

Android Viewpager保存数据和视图

希望有人可以帮助我解决Viewpagers和保存数据方面的轻微问题/困惑。 问题: 滚动浏览四个视图时,第一个视图有两个微调器,两个显示字符串或选定项目的文本视图。 如果我滚动到第三页并返回第二页,则第一个视图中的数据将丢失。 hense需要保存数据。 这会在下面列出的两个例程中完成吗? (最好的猜测是)如果是这样,需要说明什么样的命令? 码: @Override public void restoreState(Parcelable arg0, ClassLoader arg1) { } @Override public Parcelable saveState() { return null; } EXTRA INFO:正在使用viewpager public Object instantiateItem(View collection, int position) { } 完整的方法列表如下: @Override public void destroyItem(View arg0, int arg1, Object arg2) { ((ViewPager) arg0).removeView((View) arg2); } @Override public boolean isViewFromObject(View arg0, […]

如何解决UnsupportedOperationException未覆盖必需的方法destroyItem

虽然我在PagerAdapter覆盖了destroyItem(…) ,但在ViewPager滑动页面时会出现ViewPager UnsupportedOperationException未覆盖必需的方法destroyItem Java代码 public class PropertyPagerAdapter extends PagerAdapter { private Context _context; private int layoutId; private List dataList; public PropertyPagerAdapter(Context context, int resourceId, List objects) { // TODO Auto-generated constructor stub _context = context; layoutId = resourceId; dataList = objects; } @Override public int getCount() { // TODO Auto-generated method stub return dataList.size(); } […]

Android ViewPager中的视差效果

我试图在滑过片段时模仿视差效果,我读过有关beginFakeDrag和fakeDragBy但是说实话,我不知道它是否是解决我问题的最佳方法。 任何人都使用ViewPager做了类似的事情,或者暗示我应该如何处理这个问题? 谢谢

ViewPager中的setCurrentItem不会立即滚动到正确的位置

我使用PagerAdapter 。 我有很多元素,所以我不会在同一时间加载所有元素。 我重新加载适配器,我通过新元素更改旧元素。 例如,我有4个元素,当我到达最后一个元素时,我重新加载元素,我调用setCurentItem(1)以便能够在第一个位置显示viewpager。 我做了很多测试。 我放: viewPager.setCurrentItem(1,false); //But not scroll, put drastically the new page. viewPager.setCurrentItem(1); 我试图修改onPageScrollStateChanged(int arg0) ,我只有3个视图,总是在中间ubicate。 if (arg0 == ViewPager.SCROLL_STATE_DRAGGING) { if(focusedPage==2) { //Modify adapter viewPager.setCurrentItem(1,false); }else if(focusedPage==0){ //Modify adapter viewPager.setCurrentItem(1,false); } 我onPageSelected(int arg0)修改onPageSelected(int arg0) focusedPage=arg0; 使用最后一个示例,我立即滚动视图,但始终位于最后一页。 有谁知道我可以滑动。 谢谢