问题标签 [fragmenttransaction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2261 浏览

android - Android:对话框片段和 Backstack 问题

所以可以说我有以下片段:

Fragment1 Fragment2 对话框Fragment Fragment3 Fragment4

假设我转到以下片段,每个片段都添加到后堆栈:

如果我单击 BACK 按钮,这通常会转到Fragment3,但会显示DialogFragment

这是我使用的片段事务:

片段 1 -> 片段 2

Fragment2 -> DialogFragment

DialogFragment -> Fragment3

片段 3 -> 片段 4

同样的问题是,当我在 Fragment4 中并单击 BACK 按钮时,会显示 DialogFragment 而不是 Fragment3。

0 投票
2 回答
412 浏览

android - 在 FragmentPagerAdapter 的 1 个选项卡中提交 FragmentTransaction

FragmentPageAdapter过去常常在我的应用程序中有多个选项卡。这些选项卡中的 1 个ListFragment是应该被另一个片段替换的onItemClick,使用FragmentTransaction.

如果我ListFragment在. FrameLayout_ActivityFragmentPagerAdapter

这是一个更好的解释:

单击片段列表视图中的一项后,应该像这样替换它

我尝试使用.replace(((ViewGroup)getView().getParent()).getId(), newFragment).commit(),但它不起作用。

0 投票
2 回答
217 浏览

android - 当我从另一个片段返回时,如何使片段与我离开它时的方式完全相同?

我的应用程序中有一些片段,但每次单击按钮时我的代码都会打开一个新片段。

我想知道如何更改这一点,并使片段返回到与我离开时完全相同的状态。

我现在使用的代码:

谢谢!

0 投票
0 回答
128 浏览

java - 我有一个 ArrayList 片段,我无法删除 ViewPager 中的一些片段

这是我用来删除片段的方法

问题是,使用该方法似乎没有发生任何事情,我选择销毁的片段上没有 OnDestroy 调用。

到目前为止唯一有效的方法是 getItemPosition 技巧,但我不能使用它,因为它会破坏所有片段并重新创建它们,并且由于我的片段具有动态内容,因此删除所有内容并重新创建效率不高。

那么有没有办法专门从片段的 ArrayList 中删除特定的片段。并有效地更新适配器?

0 投票
0 回答
504 浏览

android - Fragment android,不执行oncreateview方法

我与您联系是因为我在 10 天内遇到了这个问题:

如果我尝试使用此代码,则没有问题,在方法“Oncreateview”中执行 ft.commit 后


但是,如果我尝试在 ft.commit 之后添加此代码

我不会更多地使用“Oncreateview”方法

为什么?怎么了?

如何恢复给定 ID 的片段?

非常感谢,对不起我的英语

0 投票
1 回答
2237 浏览

android - FragmentTransaction.replace replaces only first Fragment in a container

I have two fragments in a single container (say A and B) added in a single transaction. I try to replace them with C. According to the documentation, replace should remove all fragments from a specified container and then add new one. Instead, it replaces only first one. So I end up with B and C fragments. This confuses me a lot. Is it a bug or what?

I already know that adding several fragments to single container is considered bad practice. But I'm curious anyway.

UPDATE: found that before : http://code.google.com/p/android/issues/detail?id=28452

0 投票
2 回答
1537 浏览

android - Hide fragment leaving empty space

I have a LinearLayout which has 3 containers (also LinearLayouts), and these have weight=1. Here is that layout:

In each of these containers I add by 1 fragment:

So now they are positioned like this:

When I click on a button I want to hide first to fragments together with their containers and show new fragment that is on the right of fragment3. So I would have something like this:

When I click on the button I use this to hide the fragments:

It hides the fragments together with their containers but the screen I get looks like this:

Here empty means totally empty, no fragment, no container, nothing, just empty space there.

So, my question is how to hide the fragments without leaving the blank space there?

0 投票
1 回答
8039 浏览

android - setCustomAnimation 回调前后的 FragmentTransaction

我正在使用自定义动画来替换片段,我想在动画开始时禁用一些按钮,然后在动画结束时启用。我怎样才能做到这一点?

0 投票
2 回答
1837 浏览

java - 如何动态创建片段?

我有两个片段。(其中一个有一个编辑文本和一个按钮,另一个只有一个列表视图)我想使用片段事务动态创建它们。但是当我尝试这样做时,我的应用程序无法启动。我的代码做错了什么?

AddToDoFragment.java

}

MainActivity.java

ToDoListFragment.java

}

activity_main.xml

日志猫

  • 10-29 17:21:59.783: D/AndroidRuntime(788): 关闭虚拟机
  • 10-29 17:21:59.783: W/dalvikvm(788): threadid=1: 线程以未捕获的异常退出 (group=0x414c4700)
  • 10-29 17:21:59.863:E/AndroidRuntime(788):致命异常:主要
  • 10-29 17:21:59.863: E/AndroidRuntime(788): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.example.todolistwithdynamicfragments/com.example.todolistwithdynamicfragments.MainActivity}: java.lang.NullPointerException
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 在 android.app.ActivityThread.access$600(ActivityThread.java:141)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 在 android.os.Handler.dispatchMessage(Handler.java:99)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 在 android.os.Looper.loop(Looper.java:137)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 在 android.app.ActivityThread.main(ActivityThread.java:5103)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 在 java.lang.reflect.Method.invokeNative(Native Method)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 在 java.lang.reflect.Method.invoke(Method.java:525)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): at dalvik.system.NativeStart.main(Native Method)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 由: java.lang.NullPointerException 引起
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 在 com.example.todolistwithdynamicfragments.MainActivity.onCreate(MainActivity.java:40)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 在 android.app.Activity.performCreate(Activity.java:5133)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
  • 10-29 17:21:59.863: E/AndroidRuntime(788): ... 11 更多
  • 10-29 17:22:27.032: I/Process(788): 发送信号。PID:788 SIG:9
0 投票
0 回答
445 浏览

android - 导航返回时保留片段状态

我的(阅读)应用程序由一个(MainActivity)和几个其他片段组成。

我有一个LibraryFragment列出所有保存的文章和一个ReadingFragment(用于阅读文章)

一篇文章可以包含链接,当用户单击链接时,我正在使用片段.replace事务来显示 的新实例ReadingFragment,现在当我单击后退按钮时,我当前的片段被删除并显示旧片段,它使用它再次加载内容的参数(但我失去了滚动位置)

我曾尝试使用.add事务,但由于某种原因,添加的片段覆盖了前一个片段。

我的代码:

我想保留片段的布局和状态,每次用户单击链接时添加一个新实例,并在用户导航返回时立即恢复片段。(就像我使用 startActivity 时会做的那样)

更新

我正在片段的onActivityCreated(Bundle savedInstanceState)回调中加载内容