Member 13032288 Ответов: 0

Searchview не работает правильно android studio


У меня есть searchView в панели действий, и некоторые viewPage используют фрагмент, Tab1 Tab2 Tab3. В Tab1 и Tab3 я использую searchView, а tab2 скрываю его. searchView, кажется, работает нормально, но когда я меняю фрагмент вкладки с Tab1 на Tab2 и возвращаю Tab1, searchView в tab1 не работает. Когда изменить Tab1 на Tab2 на Tab3 и вернуть Tab2 и Tab1, это нормально, searchView работал. Так непонятно. Это основная активность:
<pre lang="java">
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_item, menu);
    this.menu = menu;
    MenuItem item = menu.findItem(R.id.action_search);
    searchView.setMenuItem(item);
    return true;
}
 viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}
        @Override
        public void onPageSelected(int position) {if(position==0){searchView.setVisibility(View.VISIBLE);
 MenuItem item2 = menu.findItem(R.id.action_search);
 item2.setIcon(R.drawable.ic_action_action_search);
 item2.setVisible(true);
 toolbar.setTitle("Danh Sách Bài Hát");
  } if(position==1){
 searchView.setVisibility(View.INVISIBLE);
 searchView.clearFocus();
 searchView.closeSearch();
 MenuItem item2 = menu.findItem(R.id.action_search);
 item2.setIcon(null);
 toolbar.setTitle("Bài Hát Yêu Thích");
 }if(position==2){//searchView.setVisibility(View.INVISIBLE);
searchView.setVisibility(View.VISIBLE);
MenuItem item2 = menu.findItem(R.id.action_search);
item2.setIcon(R.drawable.ic_action_action_search);
item2.setVisible(true);
toolbar.setTitle("Địa điểm âm nhạc");} if(position==3){searchView.setVisibility(View.INVISIBLE);MenuItem item2 = menu.findItem(R.id.action_search);item2.setVisible(false);                   toolbar.setTitle("Hướng dẫn sử dụng");
            }}
        @Override
        public void onPageScrollStateChanged(int state) {

        }

    });
    tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);

    setupTabIcons();
}


Что я уже пробовал:

Я пытаюсь построить android-приложение, которое показывает listview во вкладке fragment. У меня есть searchview в actionbar, но он работает неправильно.

Richard MacCutchan

"но это не работает правильно."
Это могло означать что угодно.

Почему бы не избавиться от всех этих фрагментов и не работать над SearchView изолированно? Как только у вас это сработает, вы можете начать строить эту логику в своих фрагментах.

0 Ответов