Einstellen der SearchView
Schwerkraft das Recht durch XML oder programmatisch funktioniert, aber wenn das SearchView
erweitert wurde, dann nahm es einen kleinen Bereich der Breite auf der rechten Seite, die nicht das beabsichtigte Aussehen war, das ich im Sinn hatte, ich wollte, dass es die volle Breite nimmt.
Hinweis 1: Mit dieser Lösung konnte der Titel nicht angezeigt werden. Daher habe ich einen TextView
hinzugefügt, um den Titel zu halten.
Anmerkung 2: Wenn die SearchView
erweitert wurde, ist es auf dem benutzerdefinierten Titel überlappen würde, so machte ich den SearchView
Hintergrund als Toolbar Versteck zu vermeiden, halten/den Titel mit SearchView
zeigt ‚s erweitern/Einsturz
Hier ist der Toolbar
Code:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize">
<TextView
android:id="@+id/toolbar_title"
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:text="Toolbar Title"
android:textColor="@android:color/white" />
<android.support.v7.widget.SearchView
android:id="@+id/search_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="?attr/colorPrimary"
android:gravity="right" />
</RelativeLayout>
</android.support.v7.widget.Toolbar>
Innerhalb der Aktivität, verwendete ich die Schließen und SearchClick Zuhörer die SearchView
nach links auszurichten.
mSearchView = findViewById(R.id.search_view);
mSearchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
RelativeLayout.LayoutParams param = (RelativeLayout.LayoutParams) mSearchView.getLayoutParams();
param.removeRule(RelativeLayout.ALIGN_PARENT_LEFT);
//set layout params to cause layout update
mSearchView.setLayoutParams(param);
return false;
}
});
mSearchView.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
RelativeLayout.LayoutParams param = (RelativeLayout.LayoutParams) mSearchView.getLayoutParams();
param.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
//set layout params to cause layout update
mSearchView.setLayoutParams(param);
}
});
thx! Es funktioniert perfekt, und es wird nicht meinen Titel abdecken! – meunicorn