Android开发相对较新,并一直在努力解决这个问题。我的问题是在同一页面上有两个片段。顶部片段需要只显示一些文本,底部片段需要显示一个画线来绘制线条。我需要同时观察两者。
从我所做的,我可以得到底部片段来画线条很好,但它覆盖整个屏幕。我相信当我在底部片段中执行以下操作时会发生这种情况:
getActivity().setContentView(drawView);
如何让它仅显示在底部片段上而不显示在整个屏幕上?示例代码对我来说非常有用。
答案 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中声明所有内容。