将内容分配给片段中的选项卡 - Android

时间:2012-07-15 02:50:46

标签: android tabs android-fragments android-viewpager

刚刚在Eclipse的最新ADT版本中创建了一个新项目,并发现它将为您设置某些环境以便开始。我选择Tabs + Swipe。

我对此代码有疑问:

 public static class DummyFragment extends Fragment {
    public DummyFragment () {
    }

    public static final String ARG_SECTION_NUMBER = "section_number";

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        TextView textView = new TextView(getActivity());
        textView.setGravity(Gravity.CENTER);
        Bundle args = getArguments();
        textView.setText(Integer.toString(args.getInt(ARG_SECTION_NUMBER)));
        return textView;
    }
}

两个标签都引用同一个片段。它所做的就是切换TextView上具有标签位置编号的内容(1,2或3)。

  1. 首先提出更高级的问题:我想要选项卡切换到的两个不同的片段。在示例代码中,它指向相同的片段。这种变化发生在哪里?我能看到简短的代码示例吗?

  2. 更简单的问题:我有两个预先定义的XML布局,我想设置每个标签(或片段)。我是否在实际片段中这样做?如果是这样,在哪里? setContentView似乎没有在onCreateView方法中工作?

1 个答案:

答案 0 :(得分:2)

  1. 不确定这个问题究竟是什么问题,但是如果我理解正确TabHost(或者你用来管理Fragment标签的任何内容)是实例化{的多个实例{1}}然后在单击选项卡时将每个附加到屏幕。这一切都是在幕后完成的......你需要担心的是实现DummyFragment并告诉Fragment何时应该实例化/显示它。

  2. TabHost没有Fragment方法。您应该从setContentView中的xml中提升Fragment的布局。例如,

    onCreateView