Android 两个 fragment 一个屏幕,一个带有 Canvas

标签 android android-fragments canvas

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/

相关文章:

javascript - 如何在 HTML5 Canvas 上绘制多边形?

android - OpenGLRenderer : Path Too Large To Be Rendered To a Texture 问题

android - 可能 overdraw : Root element paints background i can't resolve

Android Studio 4.1 数据库检查器不显示 Realm 数据库

Android-API 8 中的 fragment

android - 谷歌应用商店 : My app page does not show the leaderboard and achievements icons/badges

java - 无法在 UserRecyclerAdapter 类中使用 "custom_list_users.xml"来膨胀 fragment

android - 多 fragment 最佳实践

javascript - 带有手绘线条的 HTML5 Canvas

android - 通知未出现在使用 firebase 的应用程序的终止状态