Android导航抽屉 - 调用基本内容视图

时间:2016-07-23 10:29:33

标签: android android-layout navigation-drawer

我想知道如何在调用其他 FragmentActivity.class 之后从导航抽屉调用基本 content_main.xml (布局),其中 content_main。 xml 是启动Android应用程序时会看到的第一个视图。

我不能这样做,因为我认为主要活动( MainActivity_Fragment.class )和NavigationDrawer扩展 AppCompatActivity ...如果你需要代码我' ll只显示代码片段...因为代码太长了。

如果有办法调用默认内容视图,请告诉我......我多次搜索谷歌并且很遗憾没有答案...请帮忙,谢谢...

MainActivity_Fragment.class

public class MainActivity_Fragment extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener,
    SlideFragment.OnFragmentInteractionListener,
    View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
...
}
@Override
public boolean onNavigationItemSelected(MenuItem item) {
...
    // Handle navigation view item clicks here.
    int id = item.getItemId();
    if (id == R.id.nav_camera) {
        //startActivity(new Intent(this, MainActivity_Fragment.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
        FragmentTransaction transaction = getFragmentManager().beginTransaction();
        MainActivity_Fragment newFragment = new MainActivity_Fragment();
        transaction.replace(R.id.activity_translator, newFragment); // THIS IS THE ERROR WHEREIN MAINACTIVITY.CLASS SHOULD IMPLEMENT FRAGMENT
        transaction.addToBackStack(null);
        transaction.commit();
...
}

这是我的 content_main.xml 布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/relativeLayout_for_Fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/card_activity_background"
android:orientation="vertical"
tools:showIn="@layout/app_bar_main">

...// MY DEFAULT DISPLAY CONTENT

</LinearLayout>

平台:Android Studio 2.2预览版5

Android SDK目标:24

15分钟

注意:我没有使用 FragmentActivity 作为我的类的扩展,我只是使用 AppCompatActivity

3 个答案:

答案 0 :(得分:0)

尝试这样做可能对您有所帮助,只需更改波纹管线

即可
FragmentTransaction transaction = getFragmentManager().beginTransaction();

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

答案 1 :(得分:0)

在MainActivity_Fragment的onCreate()中,第一个视图应该是默认片段,如下所示:

            mFragmentManager = getSupportFragmentManager();
            mFragmentTransaction = mFragmentManager.beginTransaction();
            //Default fragment when begin
            Bundle bundle = new Bundle();
            HomeFragment homeFragment = new HomeFragment();
            homeFragment.setArguments(bundle);
            mFragmentTransaction.replace(R.id.containerView, homeFragment);
            mFragmentTransaction.commit();

答案 2 :(得分:0)

我不确定,我认为这是我自己的活动,我应该重新编码 MainActivity_Fragment.class 并将其扩展为 FragmentActivity 。 但我仍然期待着不迁移到 FragmentActivity 的答案。