我是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?
答案 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中放置任何活动。但你可以从你的片段开始另一项活动