Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Андрей 05
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 19
1

Запретить перекрытие SearchView списком от TextView

25.05.2018, 09:37. Просмотров 344. Ответов 3
Метки нет (Все метки)

Уважаемые Форумчане
Помогите с решением проблемы с перекрытием SeqrchView списком рекомендуемых результатов.
Суть проблемы.
Имеется Activity в которой задаются начальные и конечные точки маршрута. Activity имеет вид
Запретить перекрытие SearchView списком от TextView

Разметка Activity вид
XML
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
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".InitRoute">
 
    <LinearLayout
        android:id="@+id/layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
 
        <TextView
            android:id="@+id/textZak"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/holo_orange_dark"
            android:text="Настройка маршрута"
            android:textAlignment="center"
            android:textStyle="bold" />
 
        <TextView
            android:id="@+id/textIn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Откуда"
            android:textStyle="bold" />
 
        <android.support.v7.widget.SearchView
            android:id="@+id/routeBegin"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:queryHint="@string/Search_Hint_Begin"
            app:queryHint="@string/Search_Hint_Begin" >
 
        </android.support.v7.widget.SearchView>
 
        <TextView
            android:id="@+id/textTo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Куда" />
 
        <android.support.v7.widget.SearchView
            android:id="@+id/routeEnd"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:queryHint="@string/Search_Hint_End"
            app:queryHint="@string/Search_Hint_End">
 
        </android.support.v7.widget.SearchView>
 
        <View
            android:id="@+id/divider"
            android:layout_width="wrap_content"
            android:layout_height="256dp"
            android:background="?android:attr/listDivider" />
 
        <Button
            android:id="@+id/btnRun"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Применить"
            tools:layout_editor_absoluteY="463dp" />
 
        <Button
            android:id="@+id/btnCancel"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Отменить"
            tools:layout_editor_absoluteY="463dp" />
 
    </LinearLayout>
 
</android.support.constraint.ConstraintLayout>
При вводе в строку "Откуда" появляется список и здесь все нормально.
Запретить перекрытие SearchView списком от TextView

Но вот при вводе в строку "Куда" происходит перекрытие списком предлагаемых вариантов, как показано на рисунке.
Запретить перекрытие SearchView списком от TextView

В разметке результатов используется следующий XML
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="fill"
    android:orientation="horizontal">
 
    <TextView
        android:id="@+id/suggestion_address_down"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ems="3" />
 
</LinearLayout>
Форумчане, подскажите, можно ли сделать так, чтобы строка "Куда" не перекрывалась списком предлагаемых результатов?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2018, 09:37
Ответы с готовыми решениями:

Текст из TextView перенести в другой TextView по нажатию Button
Люди, помогите плиз. Недавно начал ковырять программирование под Android. Хотел сделать банальную...

TextView txt = new TextView(this); - ошибка
Возникла проблема с динамическим создание TextView в цыкле, хотя в другом месте создается таким же...

SearchView в ActionBar
Всем привет! Добавил в ActionBar фрагмента SearchView, но он не появляется, пустой ActionBar. С...

Searchview в toolbar
Доброго времени суток уважаемые форумчане. Нужна Ваша помощь в реализации поиска. Есть несколько...

SearchView ругается на Listener?
Добрый день! подскажите что ему не нравится: @Override public boolean...

3
+1
328 / 161 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
25.05.2018, 13:16 2
Тут нужно на код смотреть, куда ты помещаешь вьюшку с результатами.
0
Андрей 05
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 19
25.05.2018, 13:44  [ТС] 3
Ок. Я пришлю в понедельник

Добавлено через 1 минуту
Ок. Пришлю в понедельник
0
Андрей 05
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 19
28.05.2018, 12:38  [ТС] 4
Вот эта процедура
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
public boolean onQueryTextChange(String newText) {
                //поиск по совпадениям.реакция на событие ввода
                //IN - список начальный адрес TO - список конечный адрес
                // as long as newText isn't empty, get suggestions from the locatorTask
                if (!newText.equals("")) {
                    final ListenableFuture<List<SuggestResult>> suggestionsFuture = mLocatorTask.suggestAsync(newText);
                    suggestionsFuture.addDoneListener(new Runnable() {
 
                        @Override
                        public void run() {
                            try {
                                // получение и обработка результата асихронного
                                List<SuggestResult> suggestResults = suggestionsFuture.get();
                                MatrixCursor suggestionsCursor = new MatrixCursor(mColumnNames);
                                int key = 0;
                                // добавление нового адреса в список адресов SearchView
                                for (SuggestResult result : suggestResults) {
                                    suggestionsCursor.addRow(new Object[]{key++, result.getLabel()});
                                }
                                // определение адаптера курсора выпадающего списка
                                if (strType =="IN") {
                                    typeInput = "IN";
                                            String[] cols = new String[]{COLUMN_NAME_ADDRESS};
                                    int[] to = new int[]{R.id.suggestion_address};
                                    suggestionAdapter = new SimpleCursorAdapter(InitRoute.this,
                                            R.layout.suggestion, suggestionsCursor, cols, to, 0); //Вот здесь происходит привязка
                                }
                                if (strType =="TO") {
                                    typeInput = "TO";
                                    String[] cols = new String[]{COLUMN_NAME_ADDRESS};
                                    int[] to = new int[]{R.id.suggestion_address_down};
                                    suggestionAdapter = new SimpleCursorAdapter(InitRoute.this,
                                            R.layout.suggestion_down, suggestionsCursor, cols, to, 0); //Вот здесь происходит привязка
                                }
                                searchView.setSuggestionsAdapter(suggestionAdapter);
                                //
                                //обрабатывать выбранное адресное предложение
                                searchView.setOnSuggestionListener(new SearchView.OnSuggestionListener() {
                                    @Override
                                    public boolean onSuggestionSelect(int position) {
                                        return false;
                                    }
 
                                    @Override
                                    public boolean onSuggestionClick(int position) {
                                        // get the selected row
                                        MatrixCursor selectedRow = (MatrixCursor) suggestionAdapter.getItem(position);
                                        // get the row's index
                                        int selectedCursorIndex = selectedRow.getColumnIndex(COLUMN_NAME_ADDRESS);
                                        // get the string from the row at index
                                        String address = selectedRow.getString(selectedCursorIndex);
                                        // use clicked suggestion as query
                                        searchView.setQuery(address, true);
                                        return true;
                                    }
                                });
                            } catch (Exception e) {
                                Log.e(TAG, "Ошибка ввода геокода: " + e.getMessage());
                            }
                        }
                    });
                }
                return true;
            }
0
28.05.2018, 12:38
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2018, 12:38

Отследить закрытие SearchView Android
Подскажите пожалуйста, как отследить закрытие SearchView, производится нажатием на стрелку.Но...

Спрятать SearchView в некоторых фрагментах
Всем привет, такой вопрос: Есть NavigationDrawer В одном фрагменте реализован viewPager , там 2...

Searchview. Поиск по базе SQLite
Здравствуйте. Не могу разобраться с этим поиском. Хотя бы один рабочий пример. То, что я находил -...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.