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);
}
}

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();
添加回答
舉報