Android – Machen Sie die gesamte Suchleiste anklickbar

Lesezeit: 5 Minuten

Ich verwende ein Suchansichtselement in meinem Fragment, um die Suchfunktion zu implementieren.

<SearchView
    android:id="@+id/search_bar"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginTop="7dp"
    android:layout_marginLeft="7dp"
    android:layout_marginRight="7dp"
    android:layout_marginBottom="7dp"
    android:background="@color/white" />

Geben Sie hier die Bildbeschreibung ein

Das Problem ist, dass nur das Suchsymbol anklickbar ist, andere Bereiche in der Suchleiste nicht anklickbar sind. Wenn ich auf das Symbol klicke, kann nur ich suchen.

Geben Sie hier die Bildbeschreibung ein

Können Sie mir bitte helfen, den gesamten Suchbereich anklickbar zu machen.

Geben Sie hier die Bildbeschreibung ein

  • versuchen hinzuzufügen android:clickable="true" zum SearchView

    – Lamorak

    26. Mai 2015 um 10:21 Uhr

  • Wenn Sie es für die Suche anklickbar machen wollen, warum bearbeiten Sie dann den darin geschriebenen Text und er ist nicht fokussiert?

    – pratz9999

    26. Mai 2015 um 10:23 Uhr

  • @Lamorak: Es funktioniert nicht beim Hinzufügen von android:clickable=”true” zu meinem Code. Jetzt kann auch der andere Bereich nicht angeklickt werden, um die Suche zu starten.

    – Saran

    26. Mai 2015 um 11:19 Uhr

  • @Lamorak: Können Sie mir bitte helfen, mein Problem zu beheben?

    – Saran

    26. Mai 2015 um 13:13 Uhr

  • @Saran fügen Sie dies zu Ihrer XML-Suchansicht hinzu android:iconifiedByDefault=”false” .. auch wenn ich Sie bitte, eine Bildschaltfläche ähnlich dem Suchsymbol hinzuzufügen. ist das in Ordnung ..

    – pratz9999

    27. Mai 2015 um 5:36 Uhr

Benutzer-Avatar
Zeeshan Ghazanfar

Dies kann einfach erreicht werden, indem Iconified auf OnClick von SearchView auf false gesetzt wird.

searchBar.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        searchBar.setIconified(false);
    }
});

Referenz: Antwort von Eric Luis

Hoffentlich wird es helfen.

AKTUALISIEREN:

Sie können es auch direkt in Ihrem XML verwenden

app:iconifiedByDefault="false"

  • Gibt es eine Möglichkeit, wenn ich auf den genannten Bereich (außerhalb des Symbols) klicke, um in die onClick-Methode zu gelangen? Ich möchte meine Listenansicht in diesem Fall erweitern.

    – f.trajkovski

    27. März 2018 um 9:50 Uhr

  • Lief wie am Schnürchen!

    – Iwan

    22. Mai 2018 um 21:15 Uhr

  • Hinweis: searchBar.onActionViewExpanded() funktioniert nicht richtig, da es dem Benutzer kein X zum Beenden der Suche anzeigt

    – Hyäne

    3. Februar 2020 um 0:23 Uhr

Benutzer-Avatar
Lokesh Gupta

search_bar.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        search_bar.onActionViewExpanded();
    }
});

  • Einfachste Lösung aller Zeiten für android.support.v7.widget.SearchView

    – Kischan Solanki

    11. April 2018 um 7:25 Uhr

Benutzer-Avatar
PGMacDesign

Der Trick besteht weniger darin, den gesamten Bereich anklickbar zu machen, als ihn zu erweitern und dann die Tastatur auszublenden.

Erstens ist Ihr Layout in XML in Ordnung, lassen Sie es so wie es ist, in Ihrem Java möchten Sie Folgendes haben:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);

    //Define your Searchview
    SearchView searchView = (SearchView) findViewById(R.id.search_bar);

    //Turn iconified to false:
    searchView.setIconified(false);
    //The above line will expand it to fit the area as well as throw up the keyboard

    //To remove the keyboard, but make sure you keep the expanded version:
    searchView.clearFocus();
}

Dadurch wird die Tastatur auf die gesamte Länge des Bereichs erweitert, es konzentriert sich darauf, wodurch der gesamte Bereich anklickbar ist, und dann wird die Tastatur entfernt, sodass es für den Benutzer so aussieht, als ob er darauf klicken könnte Feld und rufen Sie eine Tastatur auf.

Sollte das erreichen, wonach Sie suchen.

-Sil

  • Das ist einfach und sauber

    – Benutzer3290180

    3. Oktober 2016 um 14:21 Uhr

füge dies zu deinem xml hinzu android:iconifiedByDefault="false" Es wird Ihre Suchansicht geöffnet halten.

und um es zu löschen hinzufügen clearfocus zu Ihrem Suchansichtsobjekt.

Benutzer-Avatar
Sethbrin

Was bedeutet klickbar? Suchaktion auslösen oder nur den Bearbeitungsbereich fokussieren? Wenn es das erste ist, können Sie das Symbol einfach auf clickable=false setzen. und machen Sie das gesamte Layout anklickbar und implementieren Sie einen Ereignis-Listener.

<SearchView
android:id="@+id/search_bar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:click="onClick"
android:layout_marginTop="7dp"
android:layout_marginLeft="7dp"
android:layout_marginRight="7dp"
android:layout_marginBottom="7dp"
android:background="@color/white" />

Die onClick-Methode sollte sein

public void onClick(View v) {
   InputMethodManager im = ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE));
    im.showSoftInput(editText, 0);
}

  • Anklickbar bedeutet: Wenn ich irgendwo auf die Suchleiste tippe, wenn sie nicht fokussiert ist, sollte der Suchvorgang beginnen.

    – Saran

    26. Mai 2015 um 10:35 Uhr

  • Was passiert dann, wenn Sie den Bearbeitungsbereich berühren? Bearbeiten Sie die Dinge, die Sie suchen möchten, oder suchen Sie einfach? Sie können den Schlüsselereignis-Listener implementieren, wenn Sie KEY ENTER drücken.

    – Sethbrin

    26. Mai 2015 um 10:41 Uhr

  • und die Antwort beantwortet meine Frage nicht

    – Saran

    26. Mai 2015 um 12:40 Uhr

  • Ich verwende eine Suchansicht in einem Fragment und wenn ich etwas eingeben möchte, klicke ich nur auf das Lupensymbol im Suchfeld und dann wird die Suchleiste fokussiert und die Tastatur wird ausgelöst, aber meine Anforderung lautet jetzt: “Der gesamte Bereich in der Suchansicht sollte fokussiert werden wenn berühre es und die Tastatur sollte sich öffnen”…

    – Saran

    26. Mai 2015 um 13:44 Uhr

  • Bin ich mit meinem Problem jetzt klar?

    – Saran

    26. Mai 2015 um 13:45 Uhr

Benutzer-Avatar
Vaibhav Rai

Für die neuesten Versionen von Android – Versuchen Sie:

app:iconifiedByDefault="false"

Beispiel –

<android.support.v7.widget.SearchView
android:id="@+id/source_location_search"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginTop="15dp"
android:layout_marginRight="20dp"
app:iconifiedByDefault="false"
app:queryHint="Your hint text" />

  • Anklickbar bedeutet: Wenn ich irgendwo auf die Suchleiste tippe, wenn sie nicht fokussiert ist, sollte der Suchvorgang beginnen.

    – Saran

    26. Mai 2015 um 10:35 Uhr

  • Was passiert dann, wenn Sie den Bearbeitungsbereich berühren? Bearbeiten Sie die Dinge, die Sie suchen möchten, oder suchen Sie einfach? Sie können den Schlüsselereignis-Listener implementieren, wenn Sie KEY ENTER drücken.

    – Sethbrin

    26. Mai 2015 um 10:41 Uhr

  • und die Antwort beantwortet meine Frage nicht

    – Saran

    26. Mai 2015 um 12:40 Uhr

  • Ich verwende eine Suchansicht in einem Fragment und wenn ich etwas eingeben möchte, klicke ich nur auf das Lupensymbol im Suchfeld und dann wird die Suchleiste fokussiert und die Tastatur wird ausgelöst, aber meine Anforderung lautet jetzt: “Der gesamte Bereich in der Suchansicht sollte fokussiert werden wenn berühre es und die Tastatur sollte sich öffnen”…

    – Saran

    26. Mai 2015 um 13:44 Uhr

  • Bin ich mit meinem Problem jetzt klar?

    – Saran

    26. Mai 2015 um 13:45 Uhr

Benutzer-Avatar
MinnuKaAnae

searchView.setIconified(false);

1089950cookie-checkAndroid – Machen Sie die gesamte Suchleiste anklickbar

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy