gpt4 book ai didi

android - 当我选择其他项目时,BottomNavigationView 中的第一项保持突出显示

转载 作者:行者123 更新时间:2023-11-29 01:03:15 26 4
gpt4 key购买 nike

导航栏中的第一项保持突出显示。

当我点击导航栏上的其他item时,内容会发生变化,但相应的item不会高亮,一直高亮第一个。

        bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment fragment=null;
switch (item.getItemId()){
case R.id.number:
fragment=new data();
break;
case R.id.graph:
fragment=new graph();
break;
}
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.content_drawer, fragment);
fragmentTransaction.commit();
return true;
}
});

这是监听器

<RelativeLayout 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"
>

<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimaryDark"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom"
app:menu="@menu/navigation" />

<LinearLayout
android:id="@+id/graphlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/navigation"
android:orientation="vertical"
android:gravity="center_vertical">

</LinearLayout>
</RelativeLayout>

这是xml

<?xml version="1.0" encoding="utf-8"?>

<item
android:id="@+id/number"
android:title="number"
android:checkable="true"/>

<item
android:id="@+id/graph"
android:title="graph"
android:checkable="true"/>

</menu>

这是 meun.xml

最佳答案

这通常是因为 onNavigationItemSelected 方法返回 false 值时发生的。您可以通过删除 onNavigationItemSelected 方法中除 return true 之外的所有代码来检查这一点。就这样;

bottomNavigationView.setOnNavigationItemSelectedListener(new 
BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
return true;
}
});

然后您会看到它可以工作,但内容没有改变。对于内容的更改,如果我是你,我会像这样将默认返回值更改为 false;

bottomNavigationView.setOnNavigationItemSelectedListener(new 
BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.number:
//Open fragment or do whatever you want.
return true;
case R.id.graph:
//Open another fragment or do whatever you want.
return true;
}
return false;
}
});

关于android - 当我选择其他项目时,BottomNavigationView 中的第一项保持突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49421701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com