创建并显示启动新活动空白布局

时间:2014-02-08 11:11:03

标签: java android android-layout

我在android studio自动生成的MainActivity.java文件中启动了新活动,该文件有Navigation抽屉。

@Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_main, container, false);
            startActivity(new Intent(getActivity(), Dishes.class));

这是我的Dishes.java代码

public class Dishes extends FragmentActivity {
//private Context context;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //context = Dishes.this;

    //fragment main s shown, but no original navigation drawer??
    setContentView(R.layout.fragment_main);

    new getData().execute("..");
}

ActivityMain.xml

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.app.MainActivity">

<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

<fragment android:id="@+id/navigation_drawer"
    android:layout_width="@dimen/navigation_drawer_width"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:name="com.app.NavigationDrawerFragment" />

</android.support.v4.widget.DrawerLayout>

Layout which is created in MainActivity.java (before Dishes activity is started

This layout is shown after i start Dishes activity. It has its own Actionbar w/o navigation

问题是,在我开始新活动之后,新的布局被创建并显示(我假设),我无法访问旧的导航抽屉。如何解决?

2 个答案:

答案 0 :(得分:0)

由于您的MainActivity已经有抽屉,所以 能够访问导航抽屉:
您需要扩展MainActivity(使用抽屉进行基本活动,所有类都将扩展) 在布局xml中,您可以制作一个具有抽屉和布局的父布局.Eg LinearLayout将根据您调用的活动的布局动态膨胀。
请参阅:
How to add Navigation Drawer to all the activities in the application?
Open Android Navigation Drawer from an activity class
Android Navigation Drawer (calling activities) with AbstractMainActivity

答案 1 :(得分:0)

请按照以下步骤操作:

  1. 根据您要定位的API和抽屉(我相信的地方)制作一个FragmentActivity / Activity你有一个框架布局(如果没有那么添加)作为顶部显示的那个(即当你的应用程序启动时)和抽屉(通常从左侧滑动),根据您的要求可以是列表或其他布局。
  2. 在FragmentActivity的onCreate方法中,加载此FrameLayout中上面第一张图片中显示的标签。
  3. 然后,根据抽屉或标签活动执行的操作,将当前片段替换为FrameLayout中所需的片段。
  4. 这是我一起使用导航抽屉和碎片的方式。如果不清楚或者您需要一些与之相关的片段,请告诉我。