2017-05-09 88 views
0

正如标题所说,我有一个BottomNavigationView 3菜单项,并希望分配一个长按听众给他们每个人。
我在BottoNavigationView上设置了OnNavigationItemSelectedListener

我已经试过这个答案 here 但是这并没有为我工作了...

你们推荐任何其他方式?

这是我......一般点击BTW工作
如何在BottomNavigationView的物品上设置长时间点击侦听器?

private void setUpNavigationListeners() { 
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
    ft.add(R.id.fragment_container, new CalendarView()).commit(); 
    navigation.setOnNavigationItemSelectedListener(
      new BottomNavigationView.OnNavigationItemSelectedListener() { 

       @Override 
       public boolean onNavigationItemSelected(@NonNull MenuItem item) { 

        Fragment fragment; 
        switch (item.getItemId()) { 
         case R.id.navigation_courses: 
          subtitle.setText(R.string.courses); 
          fragment = new CalendarView(); 
          break; 
         case R.id.navigation_assignments: 
          subtitle.setText(R.string.assignments); 
          fragment = new AssignmentView(); 
          break; 
         case R.id.navigation_professors: 
          subtitle.setText(R.string.professors); 
          return false; 
         default: 
          return false; 
        } 

        FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
        ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
        ft.replace(R.id.fragment_container, fragment).commit(); 
        return true; 
       } 

      }); 
    navigation.setItemIconTintList(null); 

    Menu menu = navigation.getMenu(); 
    MenuItem courses = menu.findItem(R.id.navigation_courses); 
    MenuItem assignments = menu.findItem(R.id.navigation_assignments); 
    MenuItem prof = menu.findItem(R.id.navigation_professors); 

    courses.setActionView(new ImageButton(this)); 
    courses.getActionView().setLongClickable(true); 
    Log.d("Manage", "Is long clickable:" + courses.getActionView().isLongClickable()); 
    courses.getActionView().setOnLongClickListener(new View.OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View v) { 
      Log.d("Manage", "Long clicked"); 
      return true; 
     } 
    }); 

} 

回答

0

就在getView()每个项目setLongClickable(true);所以它成为,

item.getActionView().setLongClickable(true); 
item.getActionView().setOnLongClickListener(new View.OnLongClickListener() { 
       @Override 
       public boolean onLongClick(View v) { 
        return false; 
       } 
      }); 
+0

这并没有为我工作。我发布了添加监听器的代码片段。谢谢你的帮助。 – Pants

相关问题