我试图通过以编程方式创建它们在一个屏幕上显示多个片段。通过将每个片段包含到活动布局文件中,我可以毫无问题地做到这一点。但是,当我尝试以编程方式执行此操作时,我感到很困惑。到目前为止,这就是我在屏幕上的两个片段所拥有的。
主类:
public class MainActivity extends FragmentActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        FragmentOne one = new FragmentOne();
        FragmentTwo two = new FragmentTwo();
        FragmentThree three = new FragmentThree();
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.add(R.id.imOne, one, "fragmentone");
        ft.add(R.id.imTwo, two, "fragmenttwo");
        ft.add(R.id.imThree, three, "fragmenthree");
        ft.commit();
    }
}
片段一:
public class FragmentOne extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View view = inflater.inflate(R.layout.frag_one, container, false);
        return view;
    }
}
片段二:
public class FragmentTwo extends Fragment{
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View view = inflater.inflate(R.layout.frag_two, container, false);
        return view;
    }
}
我的两个片段类的布局文件只包含一个简单的 TextView。然后是我的主类的 activity_main.xml 布局文件:
    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
    <FrameLayout
        android:id="@+id/imOne"
        android:name="com.david.twofragexample.FragmentOne"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2" />
    <FrameLayout
        android:id="@+id/imTwo"
        android:name="com.david.twofragexample.FragmentTwo"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2" />
    <FrameLayout
        android:id="@+id/imThree"
        android:name="com.david.twofragexample.FragmentThree"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2" />
</LinearLayout>
当我尝试以编程方式执行此操作时,我对我的 activity_main.xml 文件中应该包含什么感到困惑。所以从Android开发者指南(http://developer.android.com/guide/components/fragments.html)它说使用
FragmentManager fragmentManager = getFragmentManager()
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
FragmentOne fragment = new FragmentOne();
fragmentTransaction.add(R.id.fragment_container, fragment);
fragmentTransaction.commit();
因此,当我将此代码添加到我的 onCreate 方法时,我必须对我的 activity_main.xml 文件进行哪些更改才能以编程方式执行此操作?我看不到 R.id.fragment_container 来自哪里。如何确定我的新片段在屏幕上的位置?谢谢
编辑:我正在平板电脑而不是手机上开发它。现在已经解决了,上面的代码将以编程方式添加三个片段。