Articles of android viewpager

onPageScrolled()没有被调用

我正在努力熟悉ViewPager。 我的代码如下。 问题是没有调用onPageChangeListener方法。 可能是什么问题? public class TabsViewPagerFragmentActivity extends SherlockFragmentActivity implements ViewPager.OnPageChangeListener { private ViewPager mViewPager; private PagerAdapter mPagerAdapter; private PageIndicator mIndicator; private static final String[] CONTENT = new String[] { “Home”, “Popular”, “Chat”, “Profile”}; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActionBar bar = getSupportActionBar(); View customview = LayoutInflater.from(this).inflate(R.layout.actionbar_custom_layout, null); ImageView im = (ImageView)customview.findViewById(R.id.add); /*im.getLayoutParams().height = […]

如何解决viewpager:指定的子节点已经有父节点。 您必须首先在孩子的父母上调用removeView()

在我的项目中,我使用的是viewpager,其中包含三个名为History , Main , Map选项卡。 主要活动包括计时器,秒表等。 地图显示谷歌地图。 现在进入历史我只使用简单的Textview。 Viewpager流向: 历史 – 主要 – 地图 我将Main设置为当前项目(Bydefault Main tag display)。现在我从Main > Map and Map > Main滑动它的工作完美。 但是当从Main > History中滑动时没有错误但是从History返回Main ( History > Main )eclipse给出了如下错误: E/AndroidRuntime( 533): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child’s parent first. 我正在使用intent into Map Activity […]

如何改变SlidingTabLayout的文字颜色?

我创建了一个使用ActionBarCompat的应用程序 我使用SlidingTabLayout类创建了选项卡。 这个class是这样的: SlidingTabLayout.java 但我不能改变标签的颜色…… 我的viewpager片段是这样的: 应用程序工作得很好,但我无法更改选项卡的颜色文本 … 我看了下面的例子后做了一个应用程序: rudsonlive /导航抽屉ViewPager-ActionBarCompat 如何更改选项卡文本的文本颜色? 谢谢 !!!

如何使用ViewPager和嵌套片段正确处理屏幕旋转?

我有这个活动,它有一个片段。 这个片段布局包含一个带有几个片段的视图寻呼机(实际上是两个片段)。 创建视图寻呼机时,会创建其适配器, 调用getItem并创建子片段。 大。 现在,当我旋转屏幕时,框架处理片段重新创建,适配器在我的onCreate从主片段再次创建,但getItem永远不会被调用 ,所以我的适配器保存错误的引用(实际上为空)而不是两个片段。 我发现片段管理器(即子片段管理器)包含一个名为mActive的片段数组,当然无法从代码中访问它。 但是有这个getFragment方法: @Override public Fragment getFragment(Bundle bundle, String key) { int index = bundle.getInt(key, -1); if (index == -1) { return null; } if (index >= mActive.size()) { throwException(new IllegalStateException(“Fragement no longer exists for key ” + key + “: index ” + index)); } Fragment f = […]

如何知道viewpager是向左还是向右滚动?

我正在使用ViewPager(支持库)。 我想知道每次ViewPager更改可见页面时,它都向左或向右滚动。 请给我一个解决方案。 欢迎任何推荐。 谢谢

具有页面指示符的Android视图寻呼机

我需要在视图分页器文件中获取包含图像的页面指示符。 这是我的代码。 public class IndicatorActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MyPagerAdapter adapter = new MyPagerAdapter(); ViewPager myPager = (ViewPager) findViewById(R.id.pager); myPager.setAdapter(adapter); myPager.setCurrentItem(0); TitlePageIndicator indicator = (TitlePageIndicator)findViewById(R.id.indicat); indicator.setViewPager( myPager ); } } 在这段代码中,我在TitlePageIndicator indicator = (TitlePageIndicator)findViewById(R.id.indicat);中TitlePageIndicator indicator = (TitlePageIndicator)findViewById(R.id.indicat);了一个错误: TitlePageIndicator indicator […]

刷卡上的ViewPager更新片段

我有一个问题,我过去2天一直在努力。 我正在构建一个使用ActionBar,ViewPager和FragmentPagerAdapter的应用程序。 Activity,Fragments和FragmentPagerAdapter的代码与http://developer.android.com/reference/android/support/v4/view/ViewPager.html上的android示例中的内容完全相同。 我面临的问题是 – 假设我在viewPager中只有2个片段。 当在两者之间切换/滑动时,片段不会更新。 onResume不会被调用,因为viewPager将至少1个片段缓存到显示片段的任一侧。 我尝试使用onTabSelected来检测何时选择了一个片段,然后在接口的帮助下从该片段启动一个方法(下面的代码)。 public void onTabSelected(Tab tab, FragmentTransaction ft) { TabInfo tag = (TabInfo)tab.getTag(); for (int i=0; i<mTabs.size(); i++) { if (mTabs.get(i) == tag) { mViewPager.setCurrentItem(i); } } ((IStartStop)getItem(tab.getPosition())).Start(); } 但是,使用Start方法时,尝试更新textview时会触发NullPointerException。 start方法的代码是: public void Start() { TextView tv = _view.findViewById(R.id.text); tv.setText(“test”); } 行抛出exception: TextView tv = _view.findViewById(R.id.text); IStartStop界面非常简单: public […]

为什么要调用片段onCreateView,onCreate,onActivityCreated

我有一个应用程序,处理片段和ViewPager。 我在ViewPager中有三个片段。 当你在它们之间切换时,它总是导致其他两个片段调用它们的onCreateView方法。 仅在创建FragmentActivity时如何才能执行一次? 我已经阅读了一些问题并尝试了解决方案,但片段仍然具有相同的行为。 ListFragment onCreate调用了两次 onCreate()和onCreateView()调用的不仅仅是需要的(片段) 这是一些代码,如果它可以帮助你,伙计们: 主要活动: public class StartingActivity extends FragmentActivity implements View.OnClickListener { ViewPager viewPager; CirclePageIndicator pageIndicator; Button discount; Button qrCode; Button pay; TabHost tabHost; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.starting_layout); viewPager = (ViewPager) findViewById(R.id.pager); if (savedInstanceState == null) { Fragment firstPage = Fragment.instantiate(this, FindTovarFragment.class.getName()); Fragment secondPage = Fragment.instantiate(this, […]

如何在Android上的标签之间实施滑动?

Android 4.0中用于标签的关键设计建议之一是允许在适当的位置之间滑动它们。 此行为使用户可以在选定选项卡的内容上水平滑动以导航到相邻选项卡,而无需直接与选项卡本身进行交互。 如何实施?

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

我有一个viewpager,当向左/向右滑动时,它在标签之间切换。在我的第二个标签中,我有一些自定义视图,有捏和拖动的监听器,但当我尝试捏或拖动时,viewpager开始刷页面。 我想到的解决方案是在触摸那些特定视图时禁用滑动,只在触摸那些视图外时滑动。这可能吗? 更新: @Asok友好地提供了解决方案。 但后来更新了在我的情况下无法工作的代码,所以我发布了对我有用的上一段代码: 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 […]