Google BottomNavigationView 项目标题在几次快速标签切换后消失
Google BottomNavigationView item title disappears after few rapid tab switch
activity_main.xml:
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:elevation="4dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0"
/>
bottom_bar.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/tab_addcard"
android:enabled="true"
android:title="@string/addcard"
android:icon="@drawable/ic_tabicon_addcard"
app:showAsAction="ifRoom|withText"/>
<item
android:id="@+id/tab_approvals"
android:enabled="true"
android:title="@string/approvals"
android:icon="@drawable/ic_tabicon_approvals"
app:showAsAction="always|withText"/>
<item
android:id="@+id/tab_mycard"
android:enabled="true"
android:title="@string/mycard"
android:icon="@drawable/ic_tabicon_mycard"
app:showAsAction="always|withText"/>
MainActivity.java:
BottomNavigationView bottombar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bottombar= (BottomNavigationView) findViewById(R.id.bottom_navigation);
bottombar.inflateMenu(R.menu.bottom_bar);
}
我的问题是:在我完成从底栏初始化到向其中添加项目的所有操作之后。一旦我 运行 它并尝试快速(非常快)在 BottomNavigationView
的项目选项卡之间切换,突然 in-between 项目标题文本消失。有人可以建议我任何解决方案吗?
setOnNavigationItemSelectedListener
应该 return false
而不是 true
在我的例子中,我在其中一个片段中使用了 Co-ordinator 布局,并且 android:fitSystemWindows="true"
将其更改为 false
.. 解决了我的问题。 :)
似乎一个 TextView
消失了,另一个在 BottomNavigationView
项目点击时显示。看起来很懒散...
我必须在 xml 布局中为我的 BottomNavigationView
设置 app:labelVisibilityMode="selected"
。它只显示整个菜单的选定项目标题。就我而言,它看起来不错。 :)
activity_main.xml:
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:elevation="4dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0"
/>
bottom_bar.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/tab_addcard"
android:enabled="true"
android:title="@string/addcard"
android:icon="@drawable/ic_tabicon_addcard"
app:showAsAction="ifRoom|withText"/>
<item
android:id="@+id/tab_approvals"
android:enabled="true"
android:title="@string/approvals"
android:icon="@drawable/ic_tabicon_approvals"
app:showAsAction="always|withText"/>
<item
android:id="@+id/tab_mycard"
android:enabled="true"
android:title="@string/mycard"
android:icon="@drawable/ic_tabicon_mycard"
app:showAsAction="always|withText"/>
MainActivity.java:
BottomNavigationView bottombar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bottombar= (BottomNavigationView) findViewById(R.id.bottom_navigation);
bottombar.inflateMenu(R.menu.bottom_bar);
}
我的问题是:在我完成从底栏初始化到向其中添加项目的所有操作之后。一旦我 运行 它并尝试快速(非常快)在 BottomNavigationView
的项目选项卡之间切换,突然 in-between 项目标题文本消失。有人可以建议我任何解决方案吗?
setOnNavigationItemSelectedListener
应该 return false
而不是 true
在我的例子中,我在其中一个片段中使用了 Co-ordinator 布局,并且 android:fitSystemWindows="true"
将其更改为 false
.. 解决了我的问题。 :)
似乎一个 TextView
消失了,另一个在 BottomNavigationView
项目点击时显示。看起来很懒散...
我必须在 xml 布局中为我的 BottomNavigationView
设置 app:labelVisibilityMode="selected"
。它只显示整个菜单的选定项目标题。就我而言,它看起来不错。 :)