Android 开发相对较新,并且一直在努力解决这个问题。我的问题是在同一页上有两个 fragment 。顶部 fragment 只需要显示一些文本,底部 fragment 需要显示将绘制线条的 Canvas 。我需要同时观察两者。
根据我所做的,我可以让底部 fragment 很好地画线,但它覆盖了整个屏幕。我相信当我在底部 fragment 中执行以下操作时会发生这种情况:
getActivity().setContentView(drawView);
如何让它只显示在底部 fragment 上而不显示在整个屏幕上?示例代码对我来说非常有益。
最佳答案
setContentView 将替换已有的内容。
首先,您必须为 fragment 制作两个容器插槽。将其放入您的 Activity 布局 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>
然后您需要将该布局设置为 Activity java 文件中的 Activity 布局:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//this line will set layout from the xml layout
setContentView(R.layout.activity_main);
}
然后将 fragment 放入插槽中: fragment myFrag = new TopFragment(); fragment myFrag = new BottomFragment();
getFragmentManager().beginTransaction().add(R.id.fragmentContainer1,new TopFragment()).commit();
getFragmentManager().beginTransaction().add(R.id.fragmentContainer2,new BottomFragment()).commit();
还有其他方法,具体取决于您是否要在 xml 中声明所有内容。
关于Android 两个 fragment 一个屏幕,一个带有 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29661279/