我对Android开发很新,所以答案可能非常简单。
我在我的项目中使用这个库, https://github.com/jfeinstein10/SlidingMenu
我的主要布局(activity_main)有一个显示相机的表面视图。该库使用布局文件(menu_frame)。我的问题是我想在布局(activity_main)之上叠加该布局文件。因此,不是菜单(menu_frame)推送我的布局文件,而是覆盖它并保留我的布局文件。
目的是,我想将菜单的不透明度设置为最小,这样当菜单打开时,您仍然可以查看其背后的相机。
我调用我的setcontentview(R.layout.activity_main),然后调用setbehindcontentview(R.layout.menu_frame)。所以我想如果我给菜单一个id并将menu_frame布局中的framelayout添加到我的activity_main布局中,我就可以调用setbehindcontentview(R.id.framelayoutId),但这不起作用。
以下是我的代码片段:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
final int activity = R.layout.activity_main;
setContentView(activity);
setBehindContentView(R.layout.menu_frame);
SlidingMenu sm = getSlidingMenu();
sm.setShadowWidthRes(R.dimen.shadow_width);
sm.setShadowDrawable(R.drawable.shadow);
sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
sm.setFadeDegree(0.35f);
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<SurfaceView
android:id="@+id/surfaceview"
android:layout_width="fill_parent"
android:layout_height="match_parent" />
</FrameLayout>
menu_frame.xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF" />
总而言之,我希望一个布局文件覆盖另一个布局文件,或者以一种将它们叠加在彼此之上的方式组合两者。
提前致谢