Articles of android viewpager

Android:PagerAdapter的setPrimaryItem()不止一次被调用

为什么在使用ViewPager.setCurrentItem(index)选择新页面后, PagerAdapter.setPrimaryItem()被多次调用(具有相同的值ViewPager.setCurrentItem(index) ?

带有图像的Android ViewPager:内存泄漏/应用程序崩溃

我正在编写一个应用程序,显示全景图片,最终有几个标记,以显示有关某些点的信息。 由于大图像崩溃了应用程序(我还在应用程序中显示了一个大型地图的另一个活动),我现在正在尝试使用ViewPager将全景图显示为一系列页面。 我已设法以6位显示图片,我认为情况进展顺利,但现在应用程序在内存耗尽后进行了几次刷卡(大约7到8次)后崩溃。 我正在拉我的头发为什么那是因为我认为我的物品一旦离开屏幕就会被摧毁? 我是一个绝对的新手,我很抱歉,如果我是浪费时间。 我花了一整天的时间阅读并尝试从这里和其他地方的解决方案,我不是更聪明。 这是我的代码:活动PanoramaView public class PanoramaView extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.panorama); MyPagerAdapter adapter = new MyPagerAdapter(); ViewPager myPager = (ViewPager) findViewById(R.id.mysixpanelpager); myPager.setAdapter(adapter); myPager.setCurrentItem(2); } } MyPagerAdapter public class MyPagerAdapter extends PagerAdapter { public int getCount() { return 6; } public Object instantiateItem(View collection, int position) […]

Android为viewpager添加了圆圈指示

嗨我已经创建了一个视图寻呼机,但是有谁知道我如何能够在页面视图中显示代表分页的圆圈我认为它提示了一个指标,但我不完全确定? 到目前为止,包含我的视图寻呼机的代码 public class LevelSelect extends Activity { private ViewPager awesomePager; private static int NUM_AWESOME_VIEWS = 10; private Context cxt; private AwesomePagerAdapter awesomeAdapter; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_levelselect); cxt = this; awesomeAdapter = new AwesomePagerAdapter(); awesomePager = (ViewPager) findViewById(R.id.viewpager); awesomePager.setAdapter(awesomeAdapter); } private class […]

FragmentStatePagerAdapter中“isViewFromObject(视图视图,对象对象)”的作用是什么?

我正在使用FragmentStatePagerAdapter和我的View Pager。 如果isViewFromObject (View view, Object object)返回false isViewFromObject (View view, Object object)则返回的Fragment不会显示在屏幕上。 这是为什么? 开发人员doc说明Determines whether a page View is associated with a specific key object as returned by instantiateItem(ViewGroup, int). This method is required for a PagerAdapter to function properly. Determines whether a page View is associated with a specific key object as returned by […]

FragmentPagerAdapter麻烦和困境:构造函数未定义

编辑:我已经重新编写了一些代码来尝试通过错误 (但现在应用程序在启动时崩溃)。 首先,我的类现在扩展FragmentActivity,以便我可以访问方法getSupportFragmentManager();. 然后,在创建中,我改变了我的构造函数: mTabsAdapter = new TabsAdapter(this.getSupportFragmentManager(), this, mViewPager); 从那里,在我的子类中,我更改了代码以反映这一点: public TabsAdapter(FragmentManager fm, Activity activity, ViewPager pager) { super(fm); mContext = activity; mActionBar = activity.getActionBar(); mViewPager = pager; mViewPager.setAdapter(this); mViewPager.setOnPageChangeListener(this); } 正如我所说,它仍然崩溃,此时有任何想法吗? 开始原始问题:我有以下错误:“构造函数FragmentPagerAdapter(FragmentManager)未定义”* 当我尝试执行以下行时: super(activity.getFragmentManager()); 这一行跟随我的public TabsAdapter(Activity activity, ViewPager pager) {它正在扩展FragmentPagerAdapter 。 基本上,我正在尝试获取我的8+片段应用程序(8个片段,一个活动,其中包含一组链接到每个片段的ActionBar选项卡[为了简洁起见,此处仅显示一个“loginTab”])。 这是我的整个代码: 编辑:我用于参考的页面: http : //developer.android.com/reference/android/support/v4/view/ViewPager.html Android : Page Swiping using ViewPager package […]

ViewPager中多个片段之间的通信对象

我在ViewPager有5个片段,用于逐步填充业务对象和几个字段,在每个步骤中将设置一些字段。 我读过许多关于片段之间的通信的文章,但是我对其他人喜欢的方式感觉不舒服,所以在考虑如何在我的情况下做这个,最后我开始考虑使用所有片段可以轻松访问的单例模型对象到它的领域并按特定步骤填写它们。 由于我是android的新手,我想听听专家关于使用单例而不是在实现的接口之类的片段之间传递数据(看起来它太复杂且难以维护)。 任何建议都会有所帮助。

PagerTabStrip选项卡左对齐

我正在使用PagerTabStrip来设置滑动标签。 但是,当我设置三个选项卡时,它会显示中心的第一个选项卡,因此用户乍看之下无法看到所有三个选项卡。 我怎样才能将它们对齐到左边? 我想像这样向左移动标签。 我试过引力,但没有运气。 pagerTabStrip.setGravity(Gravity.LEFT); 这是MainActivity的代码。 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ViewPager viewPager = (ViewPager) findViewById(R.id.pager); PagerTabStrip pagerTabStrip = (PagerTabStrip) findViewById(R.id.pager_tab_strip); FragmentPagerAdapter fragmentPagerAdapter = new MyFragmentPagerAdapter( getSupportFragmentManager()); viewPager.setAdapter(fragmentPagerAdapter); pagerTabStrip.setGravity(Gravity.LEFT); } 和 MyFragmentPagerAdapter extends FragmentPagerAdapter { private final String[] pageTitle = { “Entry”, “History”, “Report” }; public MyFragmentPagerAdapter(FragmentManager fragmentManager) { super(fragmentManager); } […]

PagerAdapter.notifyDataSetChanged不刷新片段

我的Activity包含一个ViewPager和它的自定义Adapter ,它扩展了FragmentStatePagerAdapter 。 ViewPager包含3个片段 用于从ViewPager中删除片段的代码 MainActivity public void deleteElement(){ final int currentItem = mViewPager.getCurrentItem(); mPagerAdapter.removeItem(currentItem); mPagerAdapter.notifyDataSetChanged(); } CustomPagerAdapter private ArrayList data; public void removeItem(int index){ data.remove(index); } 删除中间Fragment (索引1)时: 从data我删除正确的item 。 问题是我(我猜) Fragment 3在notifyDataSetChanged之后被删除,并且当前Fragment仍然是用户看到的片段,并且正在加载的数据来自SavedInstance包 因此,最终结果是用户仍然看到他试图移除的相同Fragment ,这对他来说有点不好意思。 想法?

无法通过从右向左滑动关闭NavigationDrawer

我一直试图解决我遇到的问题,即我无法通过从右向左滑动来关闭NavigationDrawer,但没有成功。 通过从屏幕左边缘向右滑动打开它可以正常工作。 我目前正在尝试合并来自developer.android.com网站的NavigationDrawer示例和ViewPager示例,一切正常,但不是关闭导航抽屉。 我希望有人能帮助我。 这是我的代码: package com.example.android.effectivenavigation; import android.app.ActionBar; import android.app.FragmentTransaction; import android.app.SearchManager; import android.content.Intent; import android.content.res.Configuration; import android.os.Bundle; import android.support.v4.app.ActionBarDrawerToggle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.GravityCompat; import android.support.v4.view.ViewPager; import android.support.v4.widget.DrawerLayout; import android.util.Log; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; […]

ViewPager里面的片段问题

我有查看寻呼机的问题,它在一些片段内。 要使用视图寻呼机,我正在使用FragmentPagerAdapter。 确定我收到了java.lang.IllegalStateException:在尝试运行我的应用程序时递归进入executePendingTransactionsexception。 大多数人都认为将FragmentPagerAdapter放在其他片段中是不可能的,所以如果这个问题无效,我很抱歉。 我只是希望有人对这个问题及其可能的解决方案有一些新的想法。 PS我有一个建议在AsyncTask中设置适配器(我可以澄清这种情况,如果有人需要它),但这个解决方案有一些与恢复这样的片段状态相关的错误,所以它对我有用。