根据我的功能,我需要使用抽屉菜单以及底部导航。我使用https://github.com/roughike/BottomBar进行底部导航。
如果我使用只有3个标签的底部导航而不是它可以正常工作,但是如果我用4或5个标签扩展它而不是在工具栏顶部显示空白区域。
这是我用于添加底部导航的代码段。
activity_main.xml中
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/DrawerLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" android:elevation="7dp" android:fitsSystemWindows="false" android:scrollbars="none">
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">
<include android:id="@+id/tool_bar" layout="@layout/row_main_toolbar_header"></include>
<!-- The main content view -->
<FrameLayout android:id="@+id/contentFrame" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginBottom="@dimen/dp_1" android:layout_marginTop="@dimen/dp_10" android:background="@android:color/white" android:orientation="vertical"></FrameLayout>
</LinearLayout>
<ListView android:id="@+id/lvDrawerMenu" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="start" android:background="@android:color/white" android:scrollbars="none"></ListView>
</android.support.v4.widget.DrawerLayout>
使用给定库底部导航不需要任何组件。
在MainActivity.java中添加底部导航。
BottomBar bottomBar = BottomBar.attach(this, savedInstanceState);
bottomBar.setItemsFromMenu(R.menu.home_tab_menu, new OnMenuTabSelectedListener() {
@Override
public void onMenuItemSelected(int itemId) {
switch (itemId) {
case R.id.recent_item:
break;
case R.id.favorite_item:
break;
case R.id.location_item:
break;
case R.id.planning_item:
break;
case R.id.saver_item:
break;
}
}
});
row_main_toolbar_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:elevation="@dimen/dp_4"
android:gravity="center"
android:theme="@style/ThemeOverlay.AppCompat.Dark">
<RelativeLayout
android:id="@+id/RelativeLayout01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp">
<TextView
android:id="@+id/txtTBTitle"
style="@style/CustomBlackHeaderText"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/imgTB4" />
<ImageView
android:id="@+id/imgTB4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/imgTB3"
android:layout_toStartOf="@+id/imgTB3"
android:padding="@dimen/dp_5" />
<ImageView
android:id="@+id/imgTB3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/dp_5"
android:layout_toLeftOf="@+id/imgTB2"
android:layout_toStartOf="@+id/imgTB2"
android:padding="@dimen/dp_5" />
<ImageView
android:id="@+id/imgTB2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/dp_5"
android:layout_toLeftOf="@+id/imgTB1"
android:layout_toStartOf="@+id/imgTB1"
android:padding="@dimen/dp_5" />
<ImageView
android:id="@+id/imgTB1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/txtTBTitle"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/dp_5"
android:padding="@dimen/dp_5" />
</RelativeLayout>
</android.support.v7.widget.Toolbar>
答案 0 :(得分:2)
创建默认默认底部导航栏时,将在activity_main中自动具有以下属性:
android:paddingTop="?attr/actionBarSize"
因此,只需将其删除,即可在应用程序顶部没有空格
答案 1 :(得分:0)
我有类似的问题。我通过添加这行代码解决了这个问题。根据你的代码:
bottomBar.noTopOffset();
这至少对我来说有3个以上的标签。