android - 如何在只有一个工具栏的BottomNavigationBar的活动中添加NavigationDrawer?

时间:2018-01-07 09:29:08

标签: android android-fragments navigation-drawer android-fragmentactivity bottomnavigationview

我有一个MainActivity包含:

1- BottomNavigationBar和5个标签,包含5个片段。

2-主题 NoActionBar

3-每个片段的布局都有自己的Toolbar和不同的title

现在我想在MainActivity中添加一个NavigationDrawer,并且只有一个ActionBar(BottomNavigationBar片段的标题和“NavDrawer”图标按钮)全部在中一个 ActionBar。 这个图像定义了我的问题: enter image description here

1 个答案:

答案 0 :(得分:1)

好吧,如果您只想在片段工具栏上显示标题和图标,那么每个片段都不需要工具栏。只需使用主活动中的那个,并在选项卡更改时更改标题和图标。

使用:

public class MainActivity extends AppCompatActivity {

 public BottomBar bottomBar;
 private Toolbar toolbar;
 private ImageView toolbarIcon;

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

    bottomBar.setOnTabSelectListener(new OnTabSelectListener() {
          @Override
          public void onTabSelected(@IdRes int tabId) {

            switch (tabId) {
              case R.id.tab1: 
                TabOne tabOne= new TabOne();
                commitFragment(tabOne);
                toolbar.setTitle("Tab One");
                toolbarIcon.setImageDrawable(ContextCompat.getDrawable(this,R.drawable.ic_tab_1));
                break;

              case R.id.tab1: 
                TabTwo tabTwo= new TabTwo ();
                commitFragment(tabTwo);
                toolbar.setTitle("Tab Two");
                toolbarIcon.setImageDrawable(ContextCompat.getDrawable(this,R.drawable.ic_tab_2));
                break;

               // and so on....
            }
          }
        });
     }
   }

在工具栏中添加ImageView以更好地控制更改。

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

  <ImageView
    android:id="@+id/back_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="start" 
    android:scaleType="fitXY"/>

</android.support.v7.widget.Toolbar>