如何动态交换Fragment?

时间:2013-09-26 13:56:22

标签: android android-fragments

我有点困惑如何在Android应用程序中使用Fragments!我是Android的初学者,我正在尝试为平板电脑7景观构建应用程序,如下图所示!

A,B,D如何交换片段!通过点击事件。当用户点击A时,A的内容移动并在D中显示,D的内容在A中显示,依此类推。

我希望能够动态交换A,B和D的内容!

我应该使用什么?片段,片段活动。

例如,如果D在VideoView中显示视频,那么当用户点击A我希望D显示TextView或任何类型的数据(但不是视频视图) 以及在A中显示视频。

<pre>
<!--> 
//////////////////////////////////////////// 
/ -------   -----------------------------  / 
/ -  A  -   -                           -  / 
/ -     -   -                           -  / 
/ -------   -                           -  /  
/ -  C  -   -            D              -  / 
/ -     -   -                           -  / 
/ -------   -                           -  / 
/ -  B  -   -                           -  / 
/ -     -   -                           -  / 
/ -------   -----------------------------  / 
//////////////////////////////////////////// 
<-->
</pre>

我做的是制作了4个片段并将它们放在Main_Activity

fragment_A我将内容与D交换有问题。

fragment_B我在更改D的内容时遇到问题。

fragment_C我与Fragment_C类连接,显示一些静态数据。

fragment_D我将内容与A交换有问题。

我很高兴为您提供建议! 谢谢!

2 个答案:

答案 0 :(得分:3)

您可以尝试去检查FragmentTransaction

检查替换/添加/删除片段方法。我相信你会找到你想要的东西。

前:

FragmentTransaction fragmentTransaction = activity.getSupportFragmentManager().beginTransaction();
        fragmentTransaction.add(container, fragment);
        fragmentTransaction.commit();

和类似的东西:

FragmentTransaction fragmentTransaction = activity.getSupportFragmentManager().beginTransaction();
        fragmentTransaction.replace(container, newFragment);
        fragmentTransaction.commit();

其中container是一个简单的视图(RelativeLayout或其他东西)。

编辑:

示例:

main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

<LinearLayout
    android:id="@+id/fragment_snapshots"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:orientation="vertical" >

    <fragment
        android:id="@+id/fragment_snap1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <fragment
        android:id="@+id/fragment_snap2"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />
</LinearLayout>

<fragment
    android:id="@+id/big_fragment"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1" />

</LinearLayout>

这个布局几乎指定了 - 除了我左边只有2个片段,你想要做什么。

然后使用onClickListeners和我上面给你的功能,你可以做你想做的事。

您的容器将是我放入的不同ID(big_fragment,fragment_snap1&amp; fragment_snap2。

答案 1 :(得分:0)

你必须实现听众..请通过以下链接: -

http://developer.android.com/training/basics/fragments/communicating.html