Tôi biết có thể làm nổi bật mục xem điều hướng bằng cách gọi setCheckedItem()
hoặc trả về giá trị thực trong onNavigationItemSelected
để hiển thị mục làm mục đã chọn, nhưng Làm cách nào tôi có thể bỏ chọn các mục đã chọn của chế độ xem điều hướng?Làm cách nào để bỏ chọn các mục đã chọn trong Chế độ xem Điều hướng?
Trả lời
này sẽ bỏ chọn tất cả các mục
int size = mNavigationView.getMenu().size();
for (int i = 0; i < size; i++) {
mNavigationView.getMenu().getItem(i).setChecked(false);
}
tôi thấy giải pháp @arsent và cho nó một thử, và nó thực sự sẽ làm những gì bạn muốn, mà là để bỏ chọn tất cả các mục ... nhưng, tôi đã có một vấn đề trong các tình huống sau:
- Chọn mục trình đơn 1 (sử dụng
NavigationView#setCheckedItem
) - Bỏ chọn tất cả các mục theo @ arsent của giải pháp
- Selec t mục menu 1 lần nữa (sử dụng
NavigationView#setCheckedItem
)
Trong trường hợp này, mục 1 sẽ không được đánh dấu là đã chọn. Đó là vì trong chế độ xem điều hướng theo dõi mục đã chọn trước đó được đặt ở bước 1, không thay đổi ở bước 2 và nó chỉ bỏ qua bước 3 vì mục đã chọn trước đó giống với mục chúng tôi đang chọn bây giờ.
Đề nghị của tôi (và một giải pháp thay thế) để tránh điều này chỉ là có một hình nộm mục vô hình và sử dụng NavigationView#setCheckedItem
để chọn item mà bất cứ khi nào bạn muốn bỏ chọn tất cả, như vậy
<item
android:id="@+id/menu_none"
android:title=""
android:visible="false"/>
Để bỏ chọn tất cả chỉ là làm
mNavigationView.setCheckedItem(R.id.menu_none);
Giải pháp của Joao không hoạt động như tôi mong đợi. Điều này sẽ dẫn đến khoảng trống từ Chế độ xem mục không được kiểm soát trên Điều hướng của tôi.
Chỉ cần chắc chắn để thiết lập các quan điểm như đi:
<item
android:id="@+id/your_menu_item_id_to_hide"
android:title=""
android:visible="false"/>
bottomNavigationView.getMenu().findItem(R.id.your_menu_item_id_to_hide).setChecked(true);
bottomNavigationView.findViewById(R.id.your_menu_item_id_to_hide).setVisibility(View.GONE);
giải pháp Arsent là không cần thiết trong trường hợp này.
Tôi đã có cùng một vấn đề này và tôi đã sửa nó, nhưng tôi không thể nhớ ngay bây giờ như thế nào. Kiểm tra lại các thông số xml trên các tệp bố cục của bạn –
ah đó là chế độ xem điều hướng dưới cùng, gần đây là loại. Tôi đã không bao giờ thử giải pháp của tôi với thành phần đó, nhưng tốt để biết bạn quản lý để tinh chỉnh nó. –
Để bỏ chọn tất cả MenuItems
bao gồm SubMenu
mục mà bạn phải sử dụng đệ quy -
private void unCheckAllMenuItems(@NonNull final Menu menu) {
int size = menu.size();
for (int i = 0; i < size; i++) {
final MenuItem item = menu.getItem(i);
if(item.hasSubMenu()) {
// Un check sub menu items
unCheckAllMenuItems(item.getSubMenu());
} else {
item.setChecked(false);
}
}
}
Gọi phương pháp nêu trên để bỏ chọn tất cả các mục, như dưới đây -
unCheckAllMenuItems(navigationView.getMenu());
giá trị được thăng hạng khi được đề cập đến menu phụ –
Câu trả lời đúng, – exshinigami
Tất cả bạn cần làm là xung quanh bạn các nhóm như thế này:
<group>
<group
android:id="@+id/grp1">
<item
android:id="@+id/nav_profile"
android:icon="@drawable/ic_account_circle_24dp"
android:title="@string/profile" />
</group>
<group
android:id="@+id/grp2">
<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_settings_24dp"
android:title="@string/settings" />
<item
android:id="@+id/nav_help"
android:icon="@drawable/topic_help"
android:title="@string/help_feedback" />
</group>
</group>
Không cần t o các mục menu vòng lặp có thêm chi phí!
Tôi đoán một người như tôi sử dụng các phương pháp đó chỉ như thế này
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.nav_today:
break;
case R.id.nav_calendar:
navigationView.getMenu().performIdentifierAction(R.id.nav_today, 0);
navigationView.getMenu().getItem(0).setChecked(true);//or
navigationView.setCheckedItem(R.id.nav_today);//or
drawerLayout.closeDrawers();
break;
}
return true;
}
Đang cố gắng để kiểm tra R.id.nav_today
sau khi bạn nhấp vào R.id.nav_calendar
, (btw: checkableBehavior="single"
), tiếc là nó sẽ không làm việc.
Đó là vì sau khi mã của bạn navigationView.setCheckedItem(R.id.nav_today)
được gọi thì R.id.nav_today
sẽ được kiểm tra ngay lập tức, nhưng sau đó, nhấp chuột của bạn trên R.id.nav_calendar
sẽ tự kiểm tra.
Đó là lý do tại sao mọi phương pháp bạn sử dụng dường như không bao giờ hoạt động. Đó là công việc, nhưng được ghi đè ngay lập tức.
Trích dẫn @Được chuyển đổi, có "không cần các mục menu vòng lặp có thêm chi phí!". Tuy nhiên, không cần phải tạo nhiều nhóm (trong trường hợp này anh ta đang tạo @+id/grp1
và @+id/grp2
) để bỏ chọn một mục đã chọn trước đó.
Bạn có thể đơn giản thêm một nhóm duy nhất cho tất cả các yếu tố với android:checkableBehavior
, như thế này:
<group android:checkableBehavior="single">
<item
android:id="@+id/id1"
android:checked="true"
android:icon="@drawable/drawable1"
android:title="@string/string1" />
<item
android:id="@+id/id2"
android:icon="@drawable/drawable2"
android:title="@string/string2" />
</group>
- 1. Android: Chế độ xem điều hướng dưới cùng - biểu tượng thay đổi của mục đã chọn
- 2. Chọn các cột của Chế độ xem
- 3. Làm cách nào để truyền dữ liệu (mục đã chọn) đến Durandal bao gồm chế độ xem chi tiết?
- 4. Làm cách nào để chuyển các mục đã chọn của danh sách chọn nhiều trở lại bộ điều khiển?
- 5. Di chuyển nút TreeView đã chọn sang chế độ xem
- 6. Chế độ xem dạng cây hiển thị màu xanh cho mục đã chọn
- 7. UIScrollView không cuộn sau khi bỏ chọn "Điều chỉnh chế độ xem cuộn" xcode 6
- 8. Làm cách nào để bỏ chọn mục trong ListView?
- 9. Điều hướng giữa các Chế độ xem trong WPF MVVM
- 10. Cách định vị các mục menu trong Chế độ xem Điều hướng?
- 11. Làm cách nào để xóa chế độ xem khỏi bộ điều khiển điều hướng
- 12. JList - bỏ chọn khi nhấp vào một mục đã chọn
- 13. Nhận giá trị chỉ mục của mục menu đã chọn trong ngăn điều hướng
- 14. jQuery để điều hướng đến trang trong tùy chọn chọn
- 15. Làm cách nào để buộc hướng màn hình trong các bộ điều khiển chế độ xem cụ thể?
- 16. Django: Đặt các lựa chọn trường từ chế độ xem?
- 17. Làm cách nào để làm cho chế độ xem danh sách này không thể chọn được?
- 18. Cách tải các mục danh sách đã chọn trong hộp danh sách chọn nhiều trong chế độ xem cập nhật trong yii?
- 19. Loại bỏ chế độ xem được đẩy từ trong Bộ điều khiển Điều hướng
- 20. Chuyển đổi chế độ xem trong xương sống để điều hướng giữa các trang - đúng cách?
- 21. Cách xóa màu đã chọn khi kéo trên chế độ xem danh sách
- 22. Cách đặt mục Đã chọn trong chế độ xem dạng cây ở phía bên trái của tệp CHM
- 23. Làm cách nào để tắt các mục trong Chế độ xem danh sách?
- 24. Khi nhấp vào mục ngăn kéo điều hướng, chế độ xem danh sách mới trong ngăn điều hướng
- 25. (Android) Có cách nào để phát hiện khi văn bản đã được chọn trong chế độ xem web không?
- 26. Làm cách nào để liên kết danh sách lựa chọn với chế độ xem?
- 27. Cách điều hướng từ một chế độ xem sang chế độ xem khác bằng UIPageControl?
- 28. Bộ điều hướng trong chế độ xem phương thức
- 29. Làm cách nào để loại bỏ Chế độ xem hiện tại và chuyển đến Chế độ xem khác trong Swift
- 30. Không có tùy chọn "Chế độ được gắn" trong cài đặt "Xem trước" trong Android Studio khi đã bỏ khóa
tôi không biết sau khi sử dụng mã của bạn nó đem lại cho tôi một khoảng trống! – phpdroid
trong trường hợp của tôi, sau khi sử dụng kỹ thuật của bạn, tôi đã kiểm tra mục cuối cùng và tôi không thể giải quyết nó. hãy giúp tôi ... – takmilul
@takmilul đảm bảo bạn sử dụng 'setChecked (false);' không 'true' – arsent