标签: fragmenttransaction

用于remove()的FragmentTransaction setTransition()不会更改先前在replace()中设置的转换

所以,首先我创建一个像这样的新片段

ft = fm.beginTransaction();
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.replace(R.id.main_content_frame, cFr, "CARS");
ft.addToBackStack(null);
ft.commit();
Run Code Online (Sandbox Code Playgroud)

后来我把它删除了

fm.popBackStack();
ft = fm.beginTransaction();
ft.setTransition(FragmentTransaction.TRANSIT_NONE);
ft.remove(fm.findFragmentByTag("CARS")).commit();
Run Code Online (Sandbox Code Playgroud)

但是关闭过渡是通过TRANSIT_FRAGMENT_OPEN动画完成的(或者我认为是默认情况下相反),我清楚地设定了TRANSIT_NONE.

有什么想法吗?

android transition android-fragments fragmenttransaction

2
推荐指数
1
解决办法
1万
查看次数

java.lang.IllegalArgumentException:找不到片段的 id () 视图

我在滑动窗格布局中有一个片段。每个组件都有 id 属性。

<FrameLayout
    android:id="@+id/interviewDetailsScreen"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="left"
    android:background="#FFFFFF" />

<LinearLayout
    android:id="@+id/candidateDetailScreen"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF"
    android:baselineAligned="false"
    android:orientation="horizontal"
    android:weightSum="4" >

    <fragment
        android:id="@+id/candidateSummaryFragment"
        android:name="com.ultimatix.ncp.activity.ui.NCPCandidateSummaryFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#808080" />

    <fragment
        android:id="@+id/candidateDetailFragment"
        android:name="com.ultimatix.ncp.activity.ui.NCPCandidateDetailsFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="3"
        android:background="#FFFFFF"
        android:visibility="gone" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我正在使用 FragmentTransaction 替换其中一个片段。

ft.replace(R.id.candidateSummaryFragment, new NCPCandidateSummaryFragment());
    ft.commit();
Run Code Online (Sandbox Code Playgroud)

但错误它显示了错误。java.lang.IllegalArgumentException:找不到片段 NCPCandidateSummaryFragment{40decd50 #3 id=0x7f0b0074} 的 id 0x7f0b0074 的视图

R.java 也有关于具有相同十六进制和 id 的片段的条目。

layout android fragment sliding fragmenttransaction

1
推荐指数
1
解决办法
8328
查看次数

带有PreferenceFragment的Android事务

我正在使用a FragmentTransaction替换容器中的片段,如下所示:

activity.getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.abc_fade_in, R.anim.abc_fade_out).replace(R.id.container, fragmentToShow).addToBackStack(null).commit();
Run Code Online (Sandbox Code Playgroud)

问题是a PreferenceFragment无法转换为支持v4片段.我PreferenceFragment该怎么用呢?

android android-fragments fragmenttransaction

1
推荐指数
1
解决办法
1455
查看次数

如何重用片段

当我替换一个片段时,它会被破坏。我尝试在活动的 onCreate 中创建片段并将其引用保留在活动中,并在我“重新显示”或“重新打开”它时通过调用替换引用来使用它,但这并没有帮助,片段被销毁(替换时)由另一个片段)并重新创建。解决办法应该是什么?

我想要实现的是说WhatsApp,其中不可见时不应销毁片段,除非我没有使用滑动手势而是使用常规按钮。

谢谢。

android android-fragments fragmenttransaction fragmentmanager

1
推荐指数
1
解决办法
3130
查看次数

无法解析FragmentTransaction.add()方法.为什么我收到此错误?

我已经查看了其他答案,但没有一个能帮助我.我确保使用import android.support.v4.app.Fragment;,这不是问题.

MainActivity.java

     package com.example.nirvan.fragmentsexample2;


    import android.support.v4.app.FragmentActivity;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentTransaction;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;

    public class MainActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        myFragment myfragment=new myFragment();
        FragmentTransaction fragmentTransaction=getSupportFragmentManager().beginTransaction();
        fragmentTransaction.add(R.id.fragmentContainer,myfragment);
        fragmentTransaction.commit();

    }
   }
Run Code Online (Sandbox Code Playgroud)

错误:

Error:(20, 28) error: no suitable method found for add(int,myFragment)
method FragmentTransaction.add(Fragment,String) is not applicable
(argument mismatch; int cannot be converted to Fragment)
method FragmentTransaction.add(int,Fragment) is not applicable
(argument mismatch; myFragment cannot be converted to Fragment)
Run Code Online (Sandbox Code Playgroud)

我为什么要这个?

activity_main.xml中 …

android android-fragments fragmenttransaction

0
推荐指数
1
解决办法
3374
查看次数