片段内的FragmentActivity

时间:2015-11-06 05:44:57

标签: android fragment android-fragmentactivity

我是Android的新手,我有一些问题。我创建了一个包含两个片段的简单布局,例如:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<FrameLayout
    android:id="@+id/fragment1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

<FrameLayout
    android:id="@+id/fragment2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true" />

我想将此布局划分如下:

fragment1的layout_height:1/3高度

fragment2的layout_height:2/3高度

怎么办?

我使用下面的代码来显示fragment1:

 FragmentTransaction transaction =
            getSupportFragmentManager().beginTransaction();

    transaction.add(R.id.fragment1, firstfragment);

但我不知道如何在fragment2中显示FragmentActivity?

2 个答案:

答案 0 :(得分:0)

要以某种比例放置两个元素 - 使用LinearLayout然后将包含视图的高度设置为0dp并以所需比例添加layoutWeight属性(例如,在您的情况下为1和2) 要实例化片段,只需在编写两次代码时使用代码。您省略了transaction.commit();部分。您必须对此进行两次校验 - 对于您要添加的每个片段都要一次。

关于添加FragmentActivity的问题具有误导性 - 您无法将Activity放入Fragment,您只能将Fragment插入到Activities中。

答案 1 :(得分:0)

You can achive this layout like this

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:weightSum="3"
     >

    <FrameLayout
        android:id="@+id/fragment1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <FrameLayout
        android:id="@+id/fragment2"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2" />

</LinearLayout>

并且在java中你必须在事务中调用commit

//添加Fragment1

FragmentTransaction transaction =             。getSupportFragmentManager()的BeginTransaction();     transaction.add(R.id.fragment1,firstfragment).commit();

//添加Fragment2

FragmentTransaction transaction1 =
        getSupportFragmentManager().beginTransaction();
transaction1.add(R.id.fragment2, secondfragment).commit;

并且您不能在Fragments中放置任何活动。但你可以从你的片段开始另一项活动