62
задан 20 November 2014 в 23:49

10 ответов

Попытайтесь использовать пользовательское app пространство имен для Вашего actionViewClass также:

app:actionViewClass="android.support.v7.widget.SearchView"/>
230
ответ дан 31 October 2019 в 13:01

Добавьте следующую строку к прозащита-rules.pro файл, расположенный в папка приложения :

- сохраняют андроид support.v7.widget класса. SearchView {*;}

40
ответ дан 31 October 2019 в 13:01

Если Вы используете progurd затем, необходимо добавить следующую строку в прозащита-rules.pro , файл

- сохраняет общедоступный андроид support.v7.widget класса. ** {*;}

или

- сохраняют андроид support.v7.widget класса. SearchView {*;}

4
ответ дан 31 October 2019 в 13:01

Если, если Вы уменьшаете в своих типах сборки как этот затем, необходимо добавить одну строку 'прозащитный-rules.pro' файл.

buildTypes {
    release {
        debuggable false
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug {
        debuggable true
        minifyEnabled false
        shrinkResources false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

Добавляют строку Ваш 'прозащитный-rules.pro' файл.

-keep class android.support.v7.widget.SearchView { *; }
1
ответ дан 31 October 2019 в 13:01

После нажатия на результат приложение ожидает, что операция не завершила и пытается пойти далее в Поглощенный аргумент.

SearchView.OnSuggestionListener и возврат true, который уведомляет Ваше приложение, что операция щелчка завершилась.

        searchView.setOnSuggestionListener(new SearchView.OnSuggestionListener() {

            @Override
            public boolean onSuggestionClick(int position) {
                return true;
            }

            @Override
            public boolean onSuggestionSelect(int position) {
                return false;
            }
        });
0
ответ дан 31 October 2019 в 13:01

ItВґs дополнительная информация к ответу Simas. Я нашел это в другом ответе ( https://stackoverflow.com/a/33400808/4949671), и это было очень важно для решения моего исключения:

Уведомление, что, это, app:actionViewClass НЕ android:actionViewClass

11
ответ дан 31 October 2019 в 13:01

Проблема происходит, если Прозащита включена. может быть зафиксирован путем добавления, что это для проохранения правил

- сохраняет андроид support.v7.widget класса. SearchView {*;}

0
ответ дан 31 October 2019 в 13:01

У меня была довольно подобная проблема с androidx.appcompat.widget.SearchView, но другая причина. Катастрофический отказ происходит на кнопке действий, нажимают

 Process: hotspotshield.android.vpn, PID: 26089
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.drawable.Drawable.getPadding(android.graphics.Rect)' on a null object reference
    at androidx.appcompat.widget.SearchView.adjustDropDownSizeAndPosition(SearchView.java:1373)
    at androidx.appcompat.widget.SearchView$4.onLayoutChange(SearchView.java:380)
    at android.view.View.layout(View.java:20690)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1812)

The, причина пропускает атрибут android:popupBackground в теме. На самом деле материальные темы AppCompat имеют необходимый фон, но несмотря на мою тему расширяется от Theme.AppCompat.Light, это все еще отказывает. Единственное решение, которое я нашел, состоит в том, чтобы переопределить атрибут:

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="android:popupBackground" tools:ignore="PrivateResource">@drawable/abc_popup_background_mtrl_mult</item>
</style>

Это - значение по умолчанию, drawable, который используется в AppCompat. Это отмечено как частное, но можно использовать его все же. Или объявите фон, drawable собой

0
ответ дан 31 October 2019 в 13:01

Это могло также произойти, если у Вас есть включенная прозащита, и она чередует класс aways SearchView. Необходимо было бы изменить прозащитные настройки для хранения класса.

См. этот вопрос для получения дополнительной информации.

15
ответ дан 31 October 2019 в 13:01

через некоторое время проигрывания "выполненного & ошибка" я нашел решение.. Похож на элемент UI, не причина, что вызывает ошибку. После установки поиска к QueryListener это работает хорошо. Вот некоторый код:

Действие , который содержит SearchBar:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);

        SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {

            @Override
            public boolean onQueryTextSubmit(String s) {
                Log.d(TAG, "onQueryTextSubmit ");
                return false;
            }

            @Override
            public boolean onQueryTextChange(String s) {
                Log.d(TAG, "onQueryTextChange ");
                return false;
            }
        });

        return true;
    }

searchable.xml

<searchable xmlns:android="http://schemas.android.com/apk/res/android"
                                      android:label="@string/app_name"
                                      android:hint="@string/search_hint"/>

И "Панель поиска" в [1 113] menu.xml

     <item
            android:id="@+id/search"
            android:title="@string/search_title"
            android:icon="@drawable/abc_ic_search_api_mtrl_alpha"
            app:showAsAction="collapseActionView|ifRoom"
            app:actionViewClass="android.support.v7.widget.SearchView"/>

...

И наконец, что не менее важно, декларация (но это должно быть ясно)...

  <activity
        android:name=".activities.MainActivity"
        android:label="@string/title_activity_main">
        <meta-data
            android:name="android.app.searchable"
            android:resource="@xml/searchable"/>
    </activity>
[еще 1110] информация-> Документы

10
ответ дан 31 October 2019 в 13:01

Другие вопросы по тегам:

Похожие вопросы: