2017-08-13 54 views
3

我的底部导航栏在默认开始片段SearchFragment中不可见。如果我将开始片段更改为另一个例如更多片段,除了SearchFragment之外,它和其他所有内容一样,它是我理想的开始片段。底部导航视图在默认片段中不可见Android Studio

这里是我的代码:

Main.java

import android.support.annotation.NonNull; 
import android.support.design.widget.BottomNavigationView; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentManager; 
import android.view.MenuItem; 



public class Main extends FragmentActivity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    if (savedInstanceState == null) { 
      getSupportFragmentManager().beginTransaction().replace(R.id.activity_main, new SearchFragment()).commit(); 
    } 

    BottomNavigationView bottomNavigation = (BottomNavigationView) findViewById(R.id.bottom_navigation); 

    bottomNavigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { 

     public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
      switch(item.getItemId()){ 
       case R.id.seach_tab: 
        SearchFragment sf=new SearchFragment(); 
        FragmentManager fragmentmanager1=getSupportFragmentManager(); 
        fragmentmanager1.beginTransaction() 
          .replace(R.id.activity_main, sf) 
          .commit(); 
        break; 


       case R.id.bookings_tab: 
        BookingsFragment bf=new BookingsFragment(); 
        FragmentManager fragmentmanager2=getSupportFragmentManager(); 
        fragmentmanager2.beginTransaction() 
          .replace(R.id.activity_main, bf) 
          .commit(); 
        break; 

       case R.id.account_tab: 
        ProfileFragment pf=new ProfileFragment(); 
        FragmentManager fragmentmanager3=getSupportFragmentManager(); 
        fragmentmanager3.beginTransaction() 
          .replace(R.id.activity_main, pf) 
          .commit(); 
        break; 

       case R.id.more_tab: 
        MoreFragment mf=new MoreFragment(); 
        FragmentManager fragmentmanager4=getSupportFragmentManager(); 
        fragmentmanager4.beginTransaction() 
          .replace(R.id.activity_main, mf) 
          .commit(); 
        break; 

      } 
return false; 
     } 


    }); 
} 
} 

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:id="@+id/activity_main" 
android:layout_height="match_parent" 
android:background="@color/white"> 

    <android.support.design.widget.BottomNavigationView 
     android:id="@+id/bottom_navigation" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     app:itemBackground="@color/white" 
     android:layout_gravity="bottom" 
     app:itemIconTint="@drawable/tab_bar" 
     app:itemTextColor="@drawable/tab_bar" 
     app:menu="@menu/bottombarmenu" /> 

</FrameLayout> 

bottombarmenu.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:tools="http://schemas.android.com/tools" 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 
<item 
    android:title="Search" 
    android:enabled="true" 
    android:id="@+id/seach_tab" 
    android:icon="@drawable/icon_search" 
    app:showAsAction="ifRoom|withText" 
    > 

</item> 

<item 
    android:id="@+id/bookings_tab" 
    android:enabled="false" 
    android:icon="@drawable/icon_bookings" 
    android:title="My bookings"></item> 

<item 
    android:title="Profile" 
    android:enabled="false" 
    android:id="@+id/account_tab" 
    android:icon="@drawable/icon_account" 
    app:showAsAction="ifRoom|withText"> 
</item> 

<item 
    android:id="@+id/more_tab" 
    android:enabled="false" 
    android:icon="@drawable/icon_more" 
    android:title="More" 
    app:showAsAction="ifRoom|withText"></item> 

</menu> 

回答

0

public class Main extends FragmentActivity { 
 
@Override 
 
protected void onCreate(Bundle savedInstanceState) { 
 
    super.onCreate(savedInstanceState); 
 
    setContentView(R.layout.activity_main); 
 
      getSupportFragmentManager().beginTransaction().replace(R.id.activity_main, new SearchFragment()).commit(); 
 

 
    BottomNavigationView bottomNavigation = (BottomNavigationView) findViewById(R.id.bottom_navigation); 
 

 
    bottomNavigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { 
 

 
     public boolean onNavigationItemSelected(@NonNull MenuItem item) { 
 
      switch(item.getItemId()){ 
 
       case R.id.seach_tab: 
 
        SearchFragment sf=new SearchFragment(); 
 
        FragmentManager fragmentmanager1=getSupportFragmentManager(); 
 
        fragmentmanager1.beginTransaction() 
 
          .replace(R.id.activity_main, sf) 
 
          .commit(); 
 
        break; 
 

 

 
       case R.id.bookings_tab: 
 
        BookingsFragment bf=new BookingsFragment(); 
 
        FragmentManager fragmentmanager2=getSupportFragmentManager(); 
 
        fragmentmanager2.beginTransaction() 
 
          .replace(R.id.activity_main, bf) 
 
          .commit(); 
 
        break; 
 

 
       case R.id.account_tab: 
 
        ProfileFragment pf=new ProfileFragment(); 
 
        FragmentManager fragmentmanager3=getSupportFragmentManager(); 
 
        fragmentmanager3.beginTransaction() 
 
          .replace(R.id.activity_main, pf) 
 
          .commit(); 
 
        break; 
 

 
       case R.id.more_tab: 
 
        MoreFragment mf=new MoreFragment(); 
 
        FragmentManager fragmentmanager4=getSupportFragmentManager(); 
 
        fragmentmanager4.beginTransaction() 
 
          .replace(R.id.activity_main, mf) 
 
          .commit(); 
 
        break; 
 

 
      } 
 
return false; 
 
     } 
 

 

 
    }); 
 
} 
 
}

注:保存的实例将加载如果国家空,但在你的情况下,它不会空,因此它不会加载......但如果你想它作为默认你必须排除,如果声明

+0

嗨赛,我已经运行的代码,但底部navig酒吧仍然不可见。 –

3

要更换的完整视图,所以你可以尝试布局这样,

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <FrameLayout 
     android:id="@+id/activity_main" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"> 



    </FrameLayout> 

    <android.support.design.widget.BottomNavigationView 
     android:id="@+id/bottom_navigation" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:itemBackground="@color/white" 
     android:layout_gravity="bottom" 
     app:itemIconTint="@drawable/tab_bar" 
     app:itemTextColor="@drawable/tab_bar" 
     app:menu="@menu/bottombarmenu"/> 

</LinearLayout> 
+0

谢谢!赞赏 –

+0

工作正常..? –

+0

是的。再次感谢您:) –

相关问题