【问题标题】:add ListFragment with FragmentTransaction is not supported?不支持使用 FragmentTransaction 添加 ListFragment?
【发布时间】:2012-03-01 02:16:45
【问题描述】:

我有一个ListFragment

public class MyListFragment extends ListFragment{
      ...
}

为了在我的 Android 2.1 API 7 项目中使用 Fragment,我使用了support package。 (支持包的一切都配置好了)

在我的主机Activity看起来像:

import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;

public class FragmentNavActivity extends FragmentActivity {

   @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...

        FragmentManager fMgr = getSupportFragmentManager();  
        FragmentTransaction fTrans = fMgr.beginTransaction();

        MyListFragment myListFragment = new MyListFragment();

        fTrans.add(android.R.id.content, myListFragment).commit(); //problem here

        ...
    }

}

问题是FragmentTransaction.add(int, Fragment) 方法接受带有Fragment 类型的第二个参数,但是,我有ListFragment,这是此方法不可接受的。

那么,如何添加 ListFragmentFragmentTransaction

【问题讨论】:

  • MyListFragment 扩展了 android.support.v4.app.ListFragment?
  • Ovidiu,你是对的,我对 ListFragment 的导入有误。谢谢!但是新的问题是,我从v4.app.ListFragment而不是android.app.ListFragment导入后,无法再在ListFragment中使用onAttach(Activity hostActivity)方法,如何解决这个问题?
  • @Leem.fin 你应该可以使用它。我建议你列出所有导入的 ListFragment 的代码来解决这个问题。

标签: android android-layout android-emulator android-intent android-fragments


【解决方案1】:

也许问题是因为你正在导入android.support.app.ListFragment

【讨论】:

    【解决方案2】:

    尝试使用嵌套片段。这样,您可以将 ListFragment 包装在 Fragment 中,您可以在 FragmentTransaction 中使用它

    Nested Fragments

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-16
      • 2023-03-04
      • 2010-11-11
      • 2012-01-04
      相关资源
      最近更新 更多