Tag: android viewpager

ViewPager中的ViewPager

我想创build一个ViewPager(有三个项目),其中每个视图是另一个ViewPager(有两个项目)。 用户然后刷这样的项目: ViewPager1[0] ViewPager2[0] ViewPager1[0] ViewPager2[1] ViewPager1[1] ViewPager2[0] ViewPager1[1] ViewPager2[1] ViewPager1[2] ViewPager2[0] ViewPager1[2] ViewPager2[1] 这怎么可能?

IllegalStateException:<MyFragment>当前不在FragmentManager中

我知道这听起来像是FragmentStatePagerAdapter IllegalStateException的重复:<MyFragment>目前不在FragmentManager中,但他的解决scheme与我的情况无关。 我很less遇到以下崩溃: java.lang.RuntimeException:无法暂停活动{MyActivity}: … 由于:java.lang.IllegalStateException:Fragment MyFragment {40648258 id = 0x7f070051}目前不在android.support.v4.app.FragmentManagerImpl.putFragment(MT:516)的FragmentManager中android.support.v4.app.FragmentStatePagerAdapter .saveState(MT:185)在android.support.v4.view.ViewPager.onSaveInstanceState(MT:881) … 在android.app.Activity.onSaveInstanceState(Activity.java:1138)com.android.internal.policy.impl.PhoneWindow.saveHierarchyState(PhoneWindow.java:1522)android.view.View.saveHierarchyState(View.java:6238) )在MyActivity.onSaveInstanceState(MT:336)处的android.support.v4.app.FragmentActivity.onSaveInstanceState(MT:480) 这似乎是我从FragmentStatePagerAdapter无法理解的奇怪的代码: for (int i=0; i<mFragments.size(); i++) { Fragment f = mFragments.get(i); if (f != null) { if (state == null) { state = new Bundle(); } String key = "f" + i; mFragmentManager.putFragment(state, key, f); } } 它看起来像适配器从mFragments获取我的Fragment ,但不能将其状态添加到FragmentManager 。 […]

是否有可能在ScrollView中有一个ViewPager?

我试图在ScrollView使用一个ViewPager ,但ViewPager没有出现。 如果我删除ScrollView的ViewPager显示正常。 我已经创build了一个简单的testing项目,具体如下: main.xml布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent"> <android.support.v4.view.ViewPager android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/viewpager" /> </ScrollView> </LinearLayout> 活动课: public class ScrollViewWithViewPagerActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ViewPager vp = (ViewPager) findViewById(R.id.viewpager); vp.setAdapter(new MyPagerAdapter(this)); } } class MyPagerAdapter extends PagerAdapter { private Context ctx; […]

ViewPager与片段 – onPause(),onResume()?

当使用带片段的ViewPager时,我们的onPause(),onResume()方法在选项卡之间移动时不会被调用。 当我们可见或隐藏时,有什么方法可以在片段中找出? 不幸的是,我在onResume(),onPause()方面有逻辑,就像注册位置服务一样,切换标签时永远不会停止,因为onPause()永远不会被调用,直到退出整个应用程序。 谢谢

Android当ViewPager插入为Child时出错android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5035)

我有小孩(不作为根)的元素的布局RelativeLayout,然后我创buildViewPager并将其作为我的相对布局的子项插入,所以它就像 +相对布局(root) | + – 相对布局(子) | + – – ViewPager 现在暂时 – 一切都好。 但是,然后我尝试添加一些查看项目ViewPager与自己的布局,然后我得到错误 10-12 15:32:46.777: E/AndroidRuntime(6031): FATAL EXCEPTION: main 10-12 15:32:46.777: E/AndroidRuntime(6031): java.lang.StackOverflowError 10-12 15:32:46.777: E/AndroidRuntime(6031): at android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5035) 那ViewPager怎么会把我作为RelativeLayout的Child来拥有自己的Child View呢?

FragmentPagerAdapter getItem没有被触发

目前,使用FragmentActivity ,我使用以下代码在2种片段之间切换。 private void toggle() { Fragment oldFragment = getSupportFragmentManager().findFragmentById(R.id.content); Fragment fragment = null; if (oldFragment instanceof ColorFragment) { fragment = new ViewPagerFragment(); } else { fragment = new ColorFragment(android.R.color.black); } getSupportFragmentManager().beginTransaction().replace(R.id.content, fragment).commitAllowingStateLoss(); } 2片段正在切换。 ColorFragment – 用纯黑色填充背景的简单片段。 ViewPagerFragment – 片段包含ViewPager 。 用户可以在紫色的颜色片段和蓝色的颜色片段之间滑动。 负责划动紫色和蓝色碎片的代码如下。 private static class MyFragmentPagerAdapter extends FragmentPagerAdapter { public MyFragmentPagerAdapter(FragmentManager fm) { […]

在ViewPager中保存片段状态

我尝试了API的示例代码 ,它并没有真正的工作,所以我实现了我自己的: FragmentPagerSupport public class FragmentPagerSupport extends FragmentActivity { static final int NUM_ITEMS = 10; MyAdapter mAdapter; ViewPager mPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mAdapter = new MyAdapter(getSupportFragmentManager()); Log.i("Pager", "mAdapter = " + mAdapter.toString()); mPager = (ViewPager)findViewById(R.id.pager); if (mPager == null) Log.i("Pager", "mPager = null"); else Log.i("Pager", "mPager = " + mPager.toString()); […]

为什么在片段中不能使用ViewPager? 它实际上是

有资料显示,在Mark Murphy的“ Android开发者繁忙编码指南 ”等许多来源的Fragment中,不可能使用ViewPager ,或者在SO上发布这样的post。 我很困惑,因为我没有这样的问题,我成功地使用我的Fragment ViewPager 。 唯一的区别是我实例化一个ViewPager不在onCreateView()方法,但在onActivityCreated() 。 而且一切都很好。 所以问题是 – 可能我只是不知道的东西,这不build议出于某种原因,使onActivityCreated() UI实例? 但是再一次 – 一切正常。 这里是类和xml的列表: 类: public class ViewPagerFragment extends Fragment { static final int NUM_ITEMS = 2; private ViewPagerAdapter mAdapter; private ViewPager mPager; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.view_pager_fragment, container, false); } @Override public […]

无法从android.support.v4.app.Fragment转换为android.app.Fragment

我正在做我的第一个Android应用程序,并想直接进入ICS API。 到目前为止,我使用ActionBar创build了一个应用程序,使用Viewpager和Fragments的可滑动选项卡。 但是我确实遇到了一些我不断返回的错误。 根据我如何实现它,它总是会回到“types不匹配”错误:“不能从android.support.v4.app.Fragment转换为android.app.Fragment”。 我已经尝试删除所有的导入引用,并且这个错误出现时,我只在TabListener,FragmentActivity和我的两个片段中使用android.support.v4.app.Fragment。 该错误发生在我的TabListener中: import android.app.ActionBar; import android.app.ActionBar.Tab; import android.app.Activity; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.support.v4.view.ViewPager; import android.util.Log; public class TabListener implements ActionBar.TabListener { private android.app.Fragment fragment; private Activity activity; private ViewPager pager; private FragmentTransaction ft; public TabListener(Activity activity, Fragment fragment, ViewPager pager) { this.activity = activity; this.fragment = fragment; this.pager = […]

FragmentPagerAdapter没有正确删除项目(碎片)

我已经实现了FragmentPagerAdapter ,并使用List<Fragment>来保存ViewPager所有片段。 在addItem()我只需添加一个实例化的Fragment ,然后调用notifyDataSetChanged() 。 我不确定这是否有必要。 我的问题只是…从片段1开始 [Fragment 1] 添加新的片段2 [Fragment 1] [Fragment 2] 删除片段2 [Fragment 1] 添加新的片段3 [Fragment 1] [Fragment 2] 添加新的片段时,一切似乎都很棒。 一旦我删除一个片段,然后添加一个新实例化的片段,旧的片段仍然显示。 当我去.getClass.getName()它给了我片段3的名字,但我仍然看到片段2。 我相信这可能是与instantiateItem()或类似的问题,但我认为适配器是为我们处理。 任何build议将是伟大的。 适配器代码… public class MyPagerAdapter extends FragmentPagerAdapter { public final ArrayList<Fragment> screens2 = new ArrayList<Fragment>(); private Context context; public MyPagerAdapter(FragmentManager fm, Context context) { super(fm); this.context = context; } […]