我如何添加运行另一个活动的视图/片段?

时间:2013-12-20 18:51:17

标签: android

我有兴趣创建一种占用当前视图的少量(~33%)的视图或片段。此叠加的视图将使用相机作为输入。我认为这类似于YouTube应用在角落里播放的小视频。

我粗略地描述了我想要的东西(下图)。我不需要完整的写作,只需要一个起点。

enter image description here

1 个答案:

答案 0 :(得分:1)

不确定这是不是一个好方法,但您可以尝试使用FrameLayout来托管Fragment并使FrameLayout背景透明(如果不是知道什么是FrameLayout,用几句话就可以重叠意见。我在这上面写了an answerParent ActivityFragmentActivity)的布局可能是这样的:

<FrameLayout 
     android:id="@+id/FragmentContainer"
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent" android:layout_height="match_parent"
     android:background="@android:color/transparent" >

     <TextView
          android:layout_width="match_parent" android:layout_height="match_parent"
          android:text="I'm a text of the content" />

</FrameLayout>

Fragment可能如下所示:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" >

    <LinearLayout 
        android:layout_width="match_parent" android:layout_height="250dip"
        android:background="@color/blue"
        android:layout_alignParentTop="true" >

        <TextView
            android:id="@+id/ReaderEdit"
            android:layout_width="match_parent" android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text="I'm a text in a fragment" >

    </LinearLayout>

</RelativeLayout>  

然后当您在Fragment中初始化FrameLayout时,设置隐藏() show()方法以显示它。为此,请在FragmentSupportManager添加()替换()方法中使用FragmentActivity,如下例所示:

// Initialize your fragment: 

FragmentTransaction mTransaction = this.getSupportFragmentManager().beginTransaction();
Fragment mFrag = new MyFragment(); // call your Fragment Class
mTransaction.add(R.id.FragmentContainer, mFrag, null).hide(mFrag).commit(); // add to the Container (FrameLayout) and hide it
// don't forget to commit at the end of every FragmentTransaction

// To display your fragment: 

FragmentTransaction mTranDisplay = this.getSupportFragmentManager().beginTransaction();
mTranDisplay.show(mFrag).addToBackStack(null).commit(); // pass the Fragment to show + add the BackStack method (when the user press back button, the Fragment disappears without quit the Activity)
mTranDisplay.setCustomAnimations(R.anim.slide_in, 0, 0, R.anim.slide_out); // you can make an animation to the BackStack method, here it's a slide in/out from top to bottom

我认为有一种正确的方法可以做到这一点。也许你可以查看this library并查看,中断,重建......代码。

希望这有帮助。