AHBottomNavigation 不是全宽
AHBottomNavigation Not Full Width
我正在从官方底部导航视图切换到 this 库。
但是我注意到在使用这个库的时候,宽度和原来的库不一样
我错过了什么吗?
官方图书馆:
AHBottomNavigation:
布局 XML 与 AHBottomNavigation:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.mandike.macadamia.views.MainActivity">
<include
android:id="@+id/mToolbarMain"
layout="@layout/toolbar"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.aurelhubert.ahbottomnavigation.AHBottomNavigation
android:id="@+id/bottomNavigationView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="0dp"
android:background="@android:color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/bottom_bar_home" />
<fragment
android:id="@+id/mFragmentHome"
class="com.mandike.macadamia.views.HomeFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone"/>
<fragment
android:id="@+id/mFragmentNotice"
class="com.mandike.macadamia.views.AnnouncementFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone"/>
<fragment
android:id="@+id/mFragmentMailbox"
class="com.mandike.macadamia.views.MailboxFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone" />
<fragment
android:id="@+id/mFragmentMyAccount"
class="com.mandike.macadamia.views.MyAccountFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone"/>
</android.support.constraint.ConstraintLayout>
与官方库的布局XML(区别仅在于库行):
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.mandike.macadamia.views.MainActivity">
<include
android:id="@+id/mToolbarMain"
layout="@layout/toolbar"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottomNavigationView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="0dp"
android:background="@android:color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/bottom_bar_home" />
<fragment
android:id="@+id/mFragmentHome"
class="com.mandike.macadamia.views.HomeFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone"/>
<fragment
android:id="@+id/mFragmentNotice"
class="com.mandike.macadamia.views.AnnouncementFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone"/>
<fragment
android:id="@+id/mFragmentMailbox"
class="com.mandike.macadamia.views.MailboxFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone" />
<fragment
android:id="@+id/mFragmentMyAccount"
class="com.mandike.macadamia.views.MyAccountFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone"/>
</android.support.constraint.ConstraintLayout>
检查库中的 bottom_navigation_item.xml (link),它设置了左右填充。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/bottom_navigation_container"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_navigation_height"
android:background="@drawable/item_background"
android:minWidth="@dimen/bottom_navigation_min_width"
android:paddingLeft="@dimen/bottom_navigation_padding_left" // 12dp
android:paddingRight="@dimen/bottom_navigation_padding_right"> // 12dp
<ImageView/>
<TextView/>
<TextView/>
</FrameLayout>
如果你想更改在你的项目中包含该库文件夹并根据你的要求更改值
终于找到代码了。
在AHBottomNavigation.java, there are some lines中改变每个项目的宽度
if (titleState == TitleState.ALWAYS_SHOW && items.size() > MIN_ITEMS) {
minWidth = resources.getDimension(R.dimen.bottom_navigation_small_inactive_min_width);
maxWidth = resources.getDimension(R.dimen.bottom_navigation_small_inactive_max_width);
}
删除这些行会使栏的行为像官方图书馆一样。
我正在从官方底部导航视图切换到 this 库。 但是我注意到在使用这个库的时候,宽度和原来的库不一样 我错过了什么吗?
官方图书馆:
AHBottomNavigation:
布局 XML 与 AHBottomNavigation:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.mandike.macadamia.views.MainActivity">
<include
android:id="@+id/mToolbarMain"
layout="@layout/toolbar"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.aurelhubert.ahbottomnavigation.AHBottomNavigation
android:id="@+id/bottomNavigationView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="0dp"
android:background="@android:color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/bottom_bar_home" />
<fragment
android:id="@+id/mFragmentHome"
class="com.mandike.macadamia.views.HomeFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone"/>
<fragment
android:id="@+id/mFragmentNotice"
class="com.mandike.macadamia.views.AnnouncementFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone"/>
<fragment
android:id="@+id/mFragmentMailbox"
class="com.mandike.macadamia.views.MailboxFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone" />
<fragment
android:id="@+id/mFragmentMyAccount"
class="com.mandike.macadamia.views.MyAccountFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone"/>
</android.support.constraint.ConstraintLayout>
与官方库的布局XML(区别仅在于库行):
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.mandike.macadamia.views.MainActivity">
<include
android:id="@+id/mToolbarMain"
layout="@layout/toolbar"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottomNavigationView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="0dp"
android:background="@android:color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/bottom_bar_home" />
<fragment
android:id="@+id/mFragmentHome"
class="com.mandike.macadamia.views.HomeFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone"/>
<fragment
android:id="@+id/mFragmentNotice"
class="com.mandike.macadamia.views.AnnouncementFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone"/>
<fragment
android:id="@+id/mFragmentMailbox"
class="com.mandike.macadamia.views.MailboxFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone" />
<fragment
android:id="@+id/mFragmentMyAccount"
class="com.mandike.macadamia.views.MyAccountFragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/mToolbarMain"
android:layout_marginRight="0dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginBottom="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottomNavigationView"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintHorizontal_bias="0.0"
android:visibility="gone"/>
</android.support.constraint.ConstraintLayout>
检查库中的 bottom_navigation_item.xml (link),它设置了左右填充。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/bottom_navigation_container"
android:layout_width="match_parent"
android:layout_height="@dimen/bottom_navigation_height"
android:background="@drawable/item_background"
android:minWidth="@dimen/bottom_navigation_min_width"
android:paddingLeft="@dimen/bottom_navigation_padding_left" // 12dp
android:paddingRight="@dimen/bottom_navigation_padding_right"> // 12dp
<ImageView/>
<TextView/>
<TextView/>
</FrameLayout>
如果你想更改在你的项目中包含该库文件夹并根据你的要求更改值
终于找到代码了。 在AHBottomNavigation.java, there are some lines中改变每个项目的宽度
if (titleState == TitleState.ALWAYS_SHOW && items.size() > MIN_ITEMS) {
minWidth = resources.getDimension(R.dimen.bottom_navigation_small_inactive_min_width);
maxWidth = resources.getDimension(R.dimen.bottom_navigation_small_inactive_max_width);
}
删除这些行会使栏的行为像官方图书馆一样。