Android Two片段一个屏幕,一个带有画布

时间:2015-04-15 21:29:40

标签: android android-fragments canvas

Android开发相对较新,并一直在努力解决这个问题。我的问题是在同一页面上有两个片段。顶部片段需要只显示一些文本,底部片段需要显示一个画线来绘制线条。我需要同时观察两者。

从我所做的,我可以得到底部片段来画线条很好,但它覆盖整个屏幕。我相信当我在底部片段中执行以下操作时会发生这种情况:

getActivity().setContentView(drawView);

如何让它仅显示在底部片段上而不显示在整个屏幕上?示例代码对我来说非常有用。

1 个答案:

答案 0 :(得分:3)

setContentView将替换已存在的内容。

首先,您必须为片段创建两个容器插槽。把它放在你的活动布局xml中

<RelativeLayout
    android:id="@+id/fragmentContainer1"
    android:layout_weight="1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    ></RelativeLayout>

<RelativeLayout
    android:id="@+id/fragmentContainer2"
    android:layout_weight="1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    ></RelativeLayout>

然后,您需要将该布局设置为活动java文件中的活动布局:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //this line will set layout from the xml layout
    setContentView(R.layout.activity_main);
}

然后将片段放入插槽中:     片段myFrag = new TopFragment();     片段myFrag = new BottomFragment();

getFragmentManager().beginTransaction().add(R.id.fragmentContainer1,new TopFragment()).commit();
getFragmentManager().beginTransaction().add(R.id.fragmentContainer2,new BottomFragment()).commit();

还有其他方法可以做,具体取决于您是否要在xml中声明所有内容。