करने के लिए SearchView
गुरुत्वाकर्षण की स्थापना एक्सएमएल या प्रोग्रामेटिक रूप से काम करता है लेकिन जब SearchView
का विस्तार किया गया था तो यह दाईं ओर चौड़ाई का एक छोटा सा क्षेत्र ले रहा था जो कि मेरे मन में इच्छित रूप से नहीं था, मैं चाहता था कि यह पूरी चौड़ाई ले।
नोट 1: इस समाधान ने शीर्षक को दिखाने की अनुमति नहीं दी, इसलिए मैंने शीर्षक रखने के लिए TextView
जोड़ा।
नोट 2: जब SearchView
विस्तार किया गया था, यह कस्टम शीर्षक पर ओवरलैप होता तो मैं
यहाँ SearchView
की विस्तृत/संक्षिप्त करें साथ टूलबार के रूप में SearchView
पृष्ठभूमि बनाया छुपा रखने से बचने के लिए/शीर्षक दिखा Toolbar
कोड है:
<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>
गतिविधि के अंदर, मैं बाईं ओर SearchView
संरेखित करने के लिए बंद और SearchClick श्रोताओं का इस्तेमाल किया।
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! यह पूरी तरह से काम करता है, और यह मेरे शीर्षक को कवर नहीं करेगा! – meunicorn