OnClick für die navigation Schublade header funktioniert nicht
Ich habe eine navigation Schublade in meinem app, die enthält einen header und einige Elemente der Liste. Der header hat eine textview, die ich will, um anklickbare, aber ich bin nicht in der Lage, es zu tun.
Um die id dieser textview ich verwendete den folgenden code, da es in einem anderen layout-Datei im Vergleich zu der in der setContentView in onCreate.
final LayoutInflater factory = getLayoutInflater();
final View textEntryView = factory.inflate(R.layout.header, null);
TextView home = (TextView) textEntryView.findViewById(R.id.home);
home.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(curr_context, "SHOW", Toast.LENGTH_LONG).show();
}
});
header.xml enthält der header der navigation drawer. Es hat ein Element mit dem Namen Haus. Ich brauche, um es anklickbar. Der obige code wird in der onCreate-Methode.
- Du bist nicht die Platzierung der header in einer NavigationView durch Zufall sind Sie? NavigtionView intern Orte der header in dem, was endet als Steckplatz 0 in einer verschachtelten ListView-Ansicht und dann fängt und verwirft die OnItemClicked Fall für die Kopfzeile. Könnte sein, dass die Quelle des Problems? Nicht ganz sicher, ob der Mechanismus im Spiel, aber WENN der header in einer NavigationView das wäre wichtige Informationen.
- Auf der Suche sorgfältig, fand ich, dass ich Tat, was Sie sagte. Gibt es eine Möglichkeit, damit es funktioniert in diesem Fall ? Danke !!
- Wahrscheinlich am besten, um den Kopf außerhalb der Navigationsansicht dann. Oder einfach nicht verwenden NavigationView an alle (da es in der Regel scheint mehr Probleme verursachen als es löst). Es ist im Grunde ein schickes gebrochen listview mit adapter code für die Menüs (das ist nicht so toll, ein feature).
InformationsquelleAutor varunkr | 2015-07-30
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für mich von anderen Antworten nicht funktioniert.
Ich habe versucht den code unten.
Ich weiß, es ist zu spät. Hoffe das wird einigen helfen.
Was ich Tat, um den Zugriff auf die Ansicht der Kopfzeile.
für das klicken auf die Ansichten der header, hier habe ich ein linearlayout von headerview
Oder
Vergessen Sie nicht, zu definieren
android:clickable="true"
in dein TextView xml.ich weiß, das ist spät, das ist für diejenigen, die vor dem gleichen problem.
platzieren Sie Ihre header-layout in der Navigations-Ansicht wie diese
dies ist in activity_main.xml
erstellen Sie ein layout, name it layout_header_profile.xml und legen Sie die füllen was auch immer Ansicht, die Sie wollen.
dann diese header-layout-Datei wird in Ihrem activity_main.xml nur
so, in Ihrem MainActivity.java können Sie erklären, wie Sie Ansichten aus activity_main.xml und die durchzuführenden Aktionen, keinen speziellen code benötigt.
tun Sie dies in Ihrer onCreate()
Hoffe es klappt viel Spaß beim Programmieren.
nur fügen Sie diese an Ihre header-layout-Xml-Datei
Ersten fetch-header anzeigen
Verwenden und dann onClick-Listener