我想讓NavigationView
檢查應用程序啓動時的一個項目。但我發現NavigationView.setCheckedItem(R.id.xxx)
無法正常工作。我也試過navigationView.getMenu().findItem(R.id.xxx).setChecked(true)
,結果相同。NavigationView與DrawerLayout setCheckedItem不起作用
我已經將checkableBehavior設置爲單個。
<item android:title="@string/sliding_menu_group_places">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/xxx"
android:icon="@drawable/xxx"
android:title="@string/xxx" />
<item
android:id="@+id/xxx"
android:icon="@drawable/xxx"
android:title="@string/xxx" />
...
</group>
</menu>
</item>
但有一個工作方式:
drawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
}
@Override
public void onDrawerOpened(View drawerView) {
navigationView.setChecked(R.id.xxx);
}
@Override
public void onDrawerClosed(View drawerView) {
}
@Override
public void onDrawerStateChanged(int newState) {
}
});
導航項目將在onDrawerOpened回調進行檢查。我在stackoverflow中搜索了很多,但沒有任何方法適用於我。誰能幫我解決這個問題。
EDIT-1
<?xml version="1.0" encoding="utf-8"?>
<group android:checkableBehavior="single">
<item
android:id="@+id/xxx"
android:icon="@drawable/xxx"
android:title="@string/recent_display_name" />
<item android:title="@string/sliding_menu_group_places">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/xxx"
android:icon="@drawable/xxx"
android:title="@string/my_files_display_name" />
<item
android:id="@+id/nav_item_sdcard"
android:icon="@drawable/ic_nav_sdcard"
android:title="@string/storage_display_name" />
</group>
</menu>
</item>
<item android:title="@string/sliding_menu_group_tool">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/xxx"
android:icon="@drawable/xxx"
android:title="@string/clean_display_name" />
</group>
</menu>
</item>
<item android:title="@string/sliding_menu_group_settings">
<menu>
<group android:checkableBehavior="single">
<item
android:id="@+id/xxx"
android:icon="@drawable/xxx"
android:title="@string/settings_display_name" />
<item
android:id="@+id/xxx"
android:icon="@drawable/xxx"
android:title="@string/exit_display_name" />
</group>
</menu>
</item>
</group>
嘗試navigationView.getMenu()。getItem(pos).setChecked(true); – darwin
剛剛設置,android:checked =「true」在您的- 。不需要在你的java文件中手動設置它。 –
Radhey
mDrawerList.setItemChecked(position,true);這裏mDrawerList是你ListView,試試這個 – user3068659