31 / 29 / 8
Регистрация: 07.01.2017
Сообщений: 205

Спрятать SearchView в некоторых фрагментах

23.04.2017, 08:20. Показов 1053. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, такой вопрос:
Есть NavigationDrawer
В одном фрагменте реализован viewPager , там 2 фрагмента и в каждом searchView в тулбаре.
Но когда заходишь в этот фрагмент, searchView потом отображдается во всех фрагментах приложения.
Как сделать что бы отображалась только в одном в том котором надо?


Вот фрагмент:

Со вкладками:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class Fragment_bus_0 extends Fragment {
    private PagerAdapter1 mAdapter;
    private ViewPager mPager;
 
 
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
 
        View view = inflater.inflate(R.layout.fragment_bus_0, container, false);
 
        return view;
    }
 
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        mAdapter = new PagerAdapter1(getChildFragmentManager());
        mPager = (ViewPager) getView().findViewById(R.id.pager);
        mPager.setAdapter(mAdapter);
        TabLayout tabLayout = (TabLayout)getView().findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(mPager);
    }
 
 
 
    @Override
    public void onDetach() {
        super.onDetach();
 
    }
 
}

Ну и вот одна из вкадок - они одинаковые разный список только


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
public class Tab_1_frag extends Fragment implements SearchView.OnQueryTextListener{
 
    RecyclerView rv_bus;
    private Bus1Adapter adapter;
    private  List<ListStation> listStationList = new ArrayList<>();
    ActionBar toolbar;
    SearchView searchView;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setHasOptionsMenu(true);
        createStationlList();
    }
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.tab_1, container, false);
        toolbar = ((AppCompatActivity) getActivity()).getSupportActionBar();
        rv_bus = (RecyclerView) view.findViewById(R.id.rv_recycle_tab);
 
        rv_bus.setLayoutManager(new LinearLayoutManager(getContext()));
        getActivity().getSupportFragmentManager().popBackStack();
        adapter = new Bus1Adapter(listStationList, R.layout.my_list_bus_main);
        rv_bus.setAdapter(adapter);
        rv_bus.setHasFixedSize(true);
 
    return view;
    }
 
 
    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        super.onCreateOptionsMenu(menu, inflater);
        menu.clear();
        inflater.inflate(R.menu.menu_items, menu);
        MenuItem searchItem = menu.findItem(R.id.action_search);
        searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
        searchView.setOnQueryTextListener(this );
        searchView.setQueryHint("Поиск");
        searchView.requestFocus();
 
 
        //анимация поиска
        View searchBar = searchView.findViewById(R.id.search_bar);
        if (searchBar != null && searchBar instanceof LinearLayout) {
            ((LinearLayout) searchBar).setLayoutTransition(new LayoutTransition());
        }
 
    }
 
    private void createStationlList() {
        //создаем список
        // ...
        //
    }
 
 
 
    @Override
    public boolean onQueryTextSubmit(String query) {
        return false;
    }
 
    private List<ListStation>
    filter(List<ListStation> models, String query) {
 
        query = query.toLowerCase();
        // models.clear();
        final List<ListStation> filteredModelList = new ArrayList<>();
 
        //if (query.length()==0){
        //     models.addAll(filteredModelList);
        //   }else
        for (ListStation model : models)     {
 
            final String text = model.getName().toLowerCase();
            final String text2 = model.getDetails().toLowerCase();
 
            if (text.contains(query)) {
                filteredModelList.add(model);
            }else
                //второй текст
            if (text2.contains(query)) {
                filteredModelList.add(model);
            }else ;
        }
        return filteredModelList;
    }
 
    @Override
    public boolean onQueryTextChange(String newText) {
        final List<ListStation> filteredModelList
                = filter(listStationList, newText);
        adapter.setFilter(filteredModelList);
        return false;
    }
 
   
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.04.2017, 08:20
Ответы с готовыми решениями:

Как добавить динамически в ToolBar виджет SearchView в нужных фрагментах
У меня есть Toolbar в MainActivity и нужно получить доступ к этому ToolBar во фрагменте MainActivity и добавить туда SearchView. Как такое...

NavigationView на фрагментах
Всем привет! Нужен совет. Задача банальная. Приложение с NavigationView + Toolbar, доступ к которому должен быть с любой активити в...

View во фрагментах
Чтобы прикрепить вид к layout в onCreateView мы раздуваем вид таким образом: View view = inflater.inflate(R.layout.fragment_mylayout,...

1
31 / 29 / 8
Регистрация: 07.01.2017
Сообщений: 205
25.04.2017, 12:02  [ТС]
решил проблемс таким образом : во всех фрагментах прописал в onCreate setHasOptionsMenu(true);
и там где поиск не нужен прописал

Java
1
2
3
4
 @Override
    public void onPrepareOptionsMenu(Menu menu) {
        MenuItem item=menu.findItem(R.id.action_search);
        item.setVisible(false);}
Не знаю насколько это правильно но работает без проблем. Может кому пригодится
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.04.2017, 12:02
Помогаю со студенческими работами здесь

ошибки в фрагментах
Добрый день, помогите найти ошибки в следующих фрагментах программ: а) IF 1&lt;X&lt;2 THEN X := X+1; Y:= 0; ELSE X :=0;...

Запутался в фрагментах и транзакциях с GoogleMaps?
есть активити, в которой по кнопке меняются фрагменты (их пока всего два), один из этих фрагментов карта Гугл, когда по кнопке меняю на...

Массивы. найти ошибки во фрагментах программы
Задание: Объясните и исправьте ошибки в каждом фрагменте программы: 1) var a: array of integer; 2) a(3):=6; 3) var c: array of...

Что использовать во фрагментах вместо getIntent() ?
Всем привет! Пытаюсь из одной активности во фрагмент передать данные. Метод getIntent().getExtras() не работает, подчеркнут красным. С...

Можно ли рисовать лупу не во всех фрагментах?
Недавно подключил ActionBar с поиском, использовал такой тьюториал: http://www.androidhive.info/2013/11/android-working-with-action-bar/....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru