Articles of android fragments

为什么在隐藏的片段中调用onResume()?

我的应用在主屏幕上显示了很多图像。 用户可以通过触摸图像来查看有关产品的更多信息。 主屏幕片段被隐藏,产品细节片段变得可见。 通过单击后退键,主屏幕片段将再次可见。 片段transacion实现如下: @Override public void showProduct(Product p, boolean isParentTabbed) { FragmentManager fm = getSupportFragmentManager(); FragmentTransaction transaction = fm.beginTransaction(); // the new fragment Fragment mFragment = new ProductDetailFragment(p,isParentTabbed); //hide main screen fragment and add product detail fragment transaction.hide(currentlyOpenedFragment); transaction.add(android.R.id.content,mFragment); //set new fragment as current “on top” fragment currentlyOpenedFragment = mFragment; //start animation transaction.setCustomAnimations(R.anim.slide_in_bottom, […]

将RoboFragment与FragmentManager一起使用

我一直在尝试使用RoboGuice和碎片而没有运气。 我有一个扩展RoboFragment的片段,以及一个扩展RoboFragment的活动,但似乎在RoboActivity ,方法getFragmentManager与RoboFragment不兼容。 看起来RoboFragment扩展了android.support.v4.app.Fragmentment但getFragmentManager需要android.app.Fragment 。 这有什么用?

如何在Android中使用默认animation?

我正在尝试使用片段的Activity的默认animation..在这里我find了一些关于它的东西: Android:使用Activity的Fragments默认animation 问题是:好的,我需要(例如)“activityOpenEnterAnimation”..我该如何使用它? 使用以下代码将不起作用: FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.setCustomAnimations(android.R.anim.activityOpenEnterAnimation, android.R.anim.activityOpenExitAnimation); transaction.replace(R.id.container, fragment) .addToBackStack(((Object) fragment).getClass().getName()) .commit(); 提示? 谢谢! 🙂

getChildFragmentManager在4.0.3设备上引发NoSuchMethodexception,但在4.2.2上没引发exception

我需要为我的应用程序使用嵌套片段,所以我想使用getChildFragmentManager 。 我有两个设备: 一个真正的4.0.3运行 在4.2.2上运行的虚拟虚拟机 它在第二个上工作得很好,但在我的物理设备上却没有,因为调用此方法会引发NoSuchMethodexception。 07-10 19:53:51.722: E/AndroidRuntime(29711): java.lang.NoSuchMethodError: fr.epitech.test_esi.fragments.ReservationCalendarFragment.getChildFragmentManager 我的项目使用引用的库,所以我下载了最新的android支持库(来自SDK管理器),我已将它添加到库和主项目中。 另外我决定将支持的最小sdk版本设置为4.0.3(我的真实设备运行的版本): 对于主项目和图书馆。 如果有人知道我能做错什么,请告诉我。

如何在片段转换时使第一个片段重叠第二个片段

我正在进行片段转换。 当我用第二个片段替换第一个片段时,它出现在第一个片段下面。 我希望它移动到第一个片段之上。 我怎样才能做到这一点? fragmentTransaction.setCustomAnimations(animEnter, animExit, animPopEnter, animPopExit); fragmentTransaction.replace(R.id.fragmentListView, fragment); fragmentTransaction.addToBackStack(null); fragmentTransaction.commit();

Android Fragments:生成周期方法*在显示片段时始终*被调用?

每当向用户显示片段时,我都需要执行一些代码。 通过API查看我能看到的最接近的钩子方法是onResume。 但是,从调试到我的代码时,似乎当用户选择后退按钮返回到先前显示的片段时, 不会调用onResume。 只是为了澄清我所看到的行为: 我有一个’父’活动,用于配置ActionBar中的标签…以及2个片段F1和F2。 用户选择一个选项卡,F1将加载到活动中。 按下按钮,用户可以导航到F2。 这不是一个单独的选项卡… F2被交换到布局中。 添加日志语句,我可以看到当用户选择F2上的后退按钮时,会发生以下情况…. 1)在F2上调用onPause()。 2)F1被加载到活动中……但是没有调用 F1上的onResume() 目前日志中没有错误。 我在这里做错了什么想法? 提前致谢, 尼尔。

Mapview和片段

我几个月前看过一些话题,关于在片段中使用(谷歌)MapView有点棘手/不可能的事实。 我想知道atm(六月)是否有解决方法? 我的应用程序(Android 3.0)基本上与Fragment系统一起工作,我需要在其中一个片段中显示一个地图。

FragmentStatePagerAdapter onPageSelected事件

我有一个FragmentStatePagerAdapter,里面有6个片段。 每个Fragment连接到服务器并加载数据。 现在,服务器连接正在Fragment.onStart()中完成,这意味着在任何时候,我都有3个http请求(选定的片段,每侧一个)。 我想要的是当时只有一个连接,所以我打算使用 viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(final int position) { CustomFragment fragment = (CustomFragment) myFragmentStatePagerAdapter.getItem(position); fragment.onSelected();//do stuff in here } }); 问题是, getItem()返回片段的新实例,尚未添加到管理器中(因此,尚未创建视图等)。 另外,我已经尝试过setUserVisibleHint(boolean isVisibleToUser)但是在isVisibleToUser = false时没有被调用。 那么,如何为Fragment实现“onPageSelected()”事件呢? 提前致谢

Robolectric:我如何测试包含SherlockFragment的活动?

我一直在这里阅读很多链接,github和robolectric博客但是找不到工作的解决方案(已经使用Robolectric 2.0 alpha 2)。 更新:即使我们为android.support.v4.app.Fragment替换SherlockFragment ,问题也会发生。 按照这个提示后我能够测试一个SherlockFragmentActivity,但是当我将这个片段添加到我的活动xml时,这是一个SherlockFragment: SherlockFragment类: public class ExampleFragment extends SherlockFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.example_fragment, container, false); } } 这是片段膨胀的布局: 我收到以下错误: java.lang.NullPointerException at org.robolectric.shadows.ShadowViewGroup.addView(ShadowViewGroup.java:69) at android.view.ViewGroup.addView(ViewGroup.java) at org.robolectric.res.builder.LayoutBuilder.constructFragment(LayoutBuilder.java:150) at org.robolectric.res.builder.LayoutBuilder.create(LayoutBuilder.java:104) at org.robolectric.res.builder.LayoutBuilder.doInflate(LayoutBuilder.java:42) at org.robolectric.res.builder.LayoutBuilder.doInflate(LayoutBuilder.java:45) at org.robolectric.res.builder.LayoutBuilder.inflateView(LayoutBuilder.java:62) at org.robolectric.shadows.ShadowLayoutInflater.inflate(ShadowLayoutInflater.java:50) at org.robolectric.shadows.ShadowLayoutInflater.inflate(ShadowLayoutInflater.java:55) at android.view.LayoutInflater.inflate(LayoutInflater.java) at com.squareup.test.ActionBarSherlockRobolectric.setContentView(ActionBarSherlockRobolectric.java:38) […]

ViewPager中的片段返回空对象onResume

我使用FragmentPagerAdapter从片段切换。 我需要在制作片段开关时调用一些函数,并且在OnPause和OnResume上遇到一些麻烦,所以这个问题的建议我实现了一个接口OnPageSelectListener: public interface OnPageSelectListener { void onPageSelected(); void onPageNotVisible(); } 只要此页面到达前台,它就会调用OnPageSelected函数。 工作得很好,除了我想在我的适配器上调用一个函数。 我认为这样可行,除了我的适配器一直返回NULL(即使它被初始化并且数据在我的列表视图中被加载为首选)。 public class AfterCheckFragment extends Fragment implements OnPageSelectListener{ private ListView listView; private List checkList; private CheckListAdapter adapter; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_check, container, false); System.out.println(“VIEW create […]