为了账号安全,请及时绑定邮箱和手机立即绑定

如果我返回,如何启用底部导航状态?

如果我返回,如何启用底部导航状态?

蝴蝶不菲 2022-06-23 19:31:12
当我按下返回键时,底部导航的颜色不会改变,但我的片段会改变。我想同时改变两者。即当我回去时,片段应该随着底部导航图标而改变。这是我当前的代码:MainActivity.javapublic class MainActivity extends AppCompatActivity {private FrameLayout mMainFrame;Fragment homeFragment = new HomeFragment();Fragment trendingFragment = new TrendingFragment();Fragment latestFragment = new LatestFragment();Fragment inboxFragment= new InboxFragment();Fragment libraryFragment = new LibraryFragment();// Adding acion on botom navigation icon basically adding Fragment Actionprivate BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener        = new BottomNavigationView.OnNavigationItemSelectedListener() {    @Override    public boolean onNavigationItemSelected(@NonNull MenuItem item) {        switch (item.getItemId()) {            case R.id.bottom_navigation_home:                setFragment(homeFragment);                return true;            case R.id.bottom_navigation_trending:                setFragment(trendingFragment);                return true;            case R.id.bottom_navigation_latest:                setFragment(latestFragment);                return true;            case R.id.bottom_navigation_inbox:                setFragment(inboxFragment);                return true;            case R.id.bottom_navigation_library:                setFragment(libraryFragment);                return true;            default:                return false;        }    }};@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    // Decleration Connecting Java To xml    mMainFrame = (FrameLayout) findViewById(R.id.main_container);    BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.bottom_navigation);    navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);    setFragment(homeFragment); // Start Home Fregment first}
查看完整描述

2 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

这里是答案。使用后按和活动导航按钮完美处理底部导航。


public class MainActivity extends AppCompatActivity {


private Fragment homeFragment = new HomeFragment();

private Fragment trendingFragment = new TrendingFragment();

private Fragment latestFragment = new LatestFragment();

private Fragment inboxFragment = new InboxFragment();

private Fragment libraryFragment = new LibraryFragment();

private BottomNavigationView navigation;


@Override

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);


    navigation = findViewById(R.id.bottom_navigation);

}


@Override

public void onBackPressed() {

    if (getSupportFragmentManager().getBackStackEntryCount() == 1) {

        finish();

    } else {

        super.onBackPressed();


        if (homeFragment.isResumed())

            navigation.setSelectedItemId(R.id.bottom_navigation_home);

        else if (trendingFragment.isResumed())

            navigation.setSelectedItemId(R.id.bottom_navigation_trending);

        else if (latestFragment.isResumed())

            navigation.setSelectedItemId(R.id.bottom_navigation_latest);

        else if (inboxFragment.isResumed())

            navigation.setSelectedItemId(R.id.bottom_navigation_inbox);

        else if (libraryFragment.isResumed())

            navigation.setSelectedItemId(R.id.bottom_navigation_library);

    }

}


查看完整回答
反对 回复 2022-06-23
?
倚天杖

TA贡献1828条经验 获得超3个赞

试试这个 set itemIconTint 和 itemTextColor 你特定颜色的颜色选择器 xml


<android.support.design.widget.BottomNavigationView

            android:id="@+id/bottom_navigation"

            android:layout_width="match_parent"

            android:layout_height="wrap_content"

            android:layout_gravity="center"

            android:background="@color/Black"

            app:itemBackground="@color/White"

            app:itemIconTint="@color/nav_selector"

            app:itemTextColor="@color/nav_selector"

            app:menu="@menu/nav_menu" />

这是 nav_selector.xml 将此文件放在 res->color 文件夹中


<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:color="@color/OrangeBrown" android:state_checked="true" />

    <item android:color="@color/OrangeBrown" android:state_enabled="true" android:state_pressed="true" />

    <item android:color="@color/BlackishGray" />

</selector>

如果你想点击特定的标签,你可以用下面的代码做到这一点


View view = bottomNavigationView.findViewById(R.id.nav_home);

        view.performClick();


查看完整回答
反对 回复 2022-06-23
  • 2 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号