2017-01-12 5 views
1

В настоящее время im использует фрагментацию в качестве запуска. fragment_empty Я хочу, чтобы фрагмент был загружен в качестве начальной страницы (при запуске приложения), но я не хочу, чтобы fragment_home отображался на каждой странице.android studio Как установить фрагмент из навигационной активности в качестве стартовой страницы

fragment_home страница:

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Welkom op home!" 
    android:padding="10dp" 
    /> 

<ImageView 
    android:layout_width="236dp" 
    android:layout_height="218dp" 
    android:src="@mipmap/ic_launcher" 
    android:id="@+id/imageView2" /> 

Страница fragment_empty:

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

Мой MainActivity (навигация ящик):

public boolean onNavigationItemSelected(MenuItem item) { 
    // Handle navigation view item clicks here. 
    int id = item.getItemId(); 
    Fragment fragment = null; 
     if (id == R.id.nav_home) { 
      fragment = new HomeFragment(); 
     } else if (id == R.id.nav_evenementen) { 
      fragment = new EvenementenFragment(); 
     } else if (id == R.id.nav_contact) { 
      fragment = new ContactFragment(); 
     } else if (id == R.id.nav_share) { 

     } else if (id == R.id.nav_send) { 

     } 


    if (fragment != null) { 
     FragmentManager fragmentManager = getSupportFragmentManager(); 
     fragmentManager.beginTransaction() 
       .replace(R.id.frame_container, fragment).commit(); 

    } 

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    drawer.closeDrawer(GravityCompat.START); 
    return true; 
} 

App_bar_main страница:

<include layout="@layout/fragment_empty" /> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom|end" 
    android:layout_margin="@dimen/fab_margin" 
    app:srcCompat="@android:drawable/ic_dialog_email" /> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" /> 

</android.support.design.widget.AppBarLayout> 

ответ

0
your MainActivity onCreate() method 

you can directly call first time HomeFragment like 

HomeFragment mHomeFragment = new HomeFragment(); 

FragmentManager fragmentManager = getSupportFragmentManager(); 
     fragmentManager.beginTransaction() 
       .replace(R.id.frame_container, mHomeFragment).commit(); 
0

Использование add вместо replace

В вашем MainActivityonCreate() метод дополнения:

HomeFragment fragment = new HomeFragment(); 
FragmentManager fragmentManager = getSupportFragmentManager(); 
     fragmentManager.beginTransaction() 
       .add(R.id.frame_container, fragment).commit(); 

Это добавит XML вашего фрагмента к вашему frame_container. Чтобы изменить Fragments, просто используйте тот же метод, который вы уже определили в своем коде.

+0

благодарит моего друга –

+0

Np. Удачи вам в освоении! –

0

Вы можете добавить код выше, как этого

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 


     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
       this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
     drawer.setDrawerListener(toggle); 
     toggle.syncState(); 

     NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
     navigationView.setNavigationItemSelectedListener(this); 
     // ATTENTION: This was auto-generated to implement the App Indexing API. 
     // See https://g.co/AppIndexing/AndroidStudio for more information. 
     client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build(); 


    //Here the Code 


HomeFragment fragment = new HomeFragment(); 
FragmentManager fragmentManager = getSupportFragmentManager(); 
     fragmentManager.beginTransaction() 
       .add(R.id.frame_container, fragment).commit(); 
    }