我有兴趣创建一种占用当前视图的少量(~33%)的视图或片段。此叠加的视图将使用相机作为输入。我认为这类似于YouTube应用在角落里播放的小视频。
我粗略地描述了我想要的东西(下图)。我不需要完整的写作,只需要一个起点。
答案 0 :(得分:1)
不确定这是不是一个好方法,但您可以尝试使用FrameLayout
来托管Fragment
并使FrameLayout
背景透明(如果不是知道什么是FrameLayout,用几句话就可以重叠意见。我在这上面写了an answer。 Parent Activity
(FragmentActivity)的布局可能是这样的:
<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并查看,中断,重建......代码。
希望这有帮助。