我正在尝试这样做: |片段菜单(半透明)|身体(覆盖所有屏幕宽度)|
我在屏幕左侧的片段中有一个菜单,当我点击菜单按钮时,我想在身体中打开一个新片段(正文大小=屏幕大小)。我希望片段菜单必须仍然可见,并带有半透明背景。
这是我的xml布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="0dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
tools:context="com.example.MainActivity"
android:background="@drawable/background_image"
>
<fragment android:name="com.example.Principal_Menu"
android:id="@+id/menu_fragment"
android:layout_width="150dp"
android:layout_height="match_parent" />
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/body_container"
android:orientation="vertical">
</FrameLayout>
</RelativeLayout>
但是当我在body_container中替换或添加片段时,menu_fragment消失了:(
我希望很清楚,很抱歉提出很多问题。
答案 0 :(得分:2)
如果您希望透明菜单位于body_container
的前面,那么就像这样重新构建您的xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.MainActivity"
android:background="@drawable/background_image" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/body_container"
android:orientation="vertical">
</FrameLayout>
<fragment android:name="com.example.Principal_Menu"
android:id="@+id/menu_fragment"
android:layout_width="150dp"
android:layout_gravity="top|center_horizontal"
android:layout_height="match_parent" />
</FrameLayout>
这里的逻辑是FrameLayout堆栈视图顶部的视图因此使用此布局,body_container中的Fragment将位于菜单Fragment的后面,如果您希望body_container中的Fragment位于前面,您可以在Fragment上使用此代码getView().bringToFront();
或致电此代码getSupportFragmentManager().beginTransaction().hide(the_menu_fragment).commit();
希望有所帮助