首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >FragmentTransaction.replace()不工作

FragmentTransaction.replace()不工作
EN

Stack Overflow用户
提问于 2012-11-19 10:37:18
回答 5查看 37.1K关注 0票数 20

我有一个显示用户创建的项目列表的ListFragment。我有一个id设置为“@android: id / ListView”的ListView和一个id为"@android:id/empty“的TextView

我有一个显示片段的操作栏按钮,允许用户为列表创建更多条目。下面是onOptionsItemSelected()方法:

代码语言:javascript
复制
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Fragment frag = null;

    // Right now I only have code for the addCourse() fragment, will add more soon
    switch (item.getItemId()) {
    case R.id.addCourse:
        frag = new AddCourseFragment();
        break;
    default:
        return super.onOptionsItemSelected(item);
    }

    // The support library is being dumb and replace isn't actually 
    getFragmentManager().beginTransaction()
        .remove(this).add(getId(), frag).addToBackStack(null).commit();
    return true;

}

AddCourseFragment代码如下:

代码语言:javascript
复制
public class AddCourseFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_addcourse, container, false);
//      if (view.findViewById(R.id.timesFrame)!=null) {
        Fragment timesFrag = new TimesFragment();
        getChildFragmentManager().beginTransaction()
            .add(R.id.timesFrame, timesFrag).commit();
//      }
    return view;
    }
}

不出所料,当列表未填充时,android会在TextView中显示文本。然后我点击add course按钮,就会发生这样的事情:

它显示空文本和新片段。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-11-27 03:57:21

我也遇到过类似的问题。

根据this的说法,当您需要以编程方式添加Fragments时,应该将它们添加到现有的ViewGroup中。

所以我从xml中删除了Fragment,并在replace()方法中使用了FrameLayout组件。

你也可以看看here

希望这能有所帮助。

票数 24
EN

Stack Overflow用户

发布于 2015-04-16 02:50:16

在我的例子中解决了这个问题的另一个问题是不同的API导入。

请确保使用"support.v4“或API11中的”原始“实现,并且不要将它们混合在一起。(在我的例子中,这可能会发生: TransactionManager是v4,而Activity是较旧的版本,或者反过来)

票数 3
EN

Stack Overflow用户

发布于 2016-04-26 00:02:41

为childFragment的主布局指定背景色。

就像android:background="#FFFFFF“

这对我很有效!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13446935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档