Place Search कॉम्पोनेंट
जगहों की जानकारी देने वाली यूआई किट का Place Search कॉम्पोनेंट, किसी जगह की खोज के नतीजों को सूची में दिखाता है.
Place Search सूची को अपनी पसंद के मुताबिक बनाया जा सकता है. यह तय करने पर:
- दिखाया जाने वाला कॉन्टेंट
- वर्टिकल ओरिएंटेशन में मीडिया का साइज़
- टेक्स्ट में काट-छांट
- ओरिएंटेशन
- थीम को बदलने की सुविधा, जो आपके ब्रैंड और ऐप्लिकेशन की डिज़ाइन लैंग्वेज से मेल खाती हो
- एट्रिब्यूशन की पोज़िशन
- क्या किसी जगह को चुना जा सकता है
SearchByTextRequest या SearchNearbyRequest में से किसी एक को लागू करने के लिए, अनुरोध को अपनी पसंद के मुताबिक बनाया जा सकता है.
बिलिंग
configureFromSearchByTextRequest() या configureFromSearchNearbyRequest() एट्रिब्यूट की बाइंडिंग वैल्यू में बदलाव होने पर, आपसे हर बार शुल्क लिया जाता है.
अपने ऐप्लिकेशन में Place Search जोड़ना
अपने लेआउट में PlaceSearchFragment फ़्रैगमेंट जोड़कर, Place Search विजेट का इस्तेमाल करें.
जब आपको अपने ऐप्लिकेशन में टेक्स्ट खोज या आस-पास की जगहों की खोज के नतीजे लोड करने हों, तब अनुरोध के साथ configureFromSearchByTextRequest() या configureFromSearchNearbyRequest() को कॉल करें.
Kotlin
fragment.configureFromSearchByTextRequest(searchByTextRequest) // or fragment.configureFromSearchNearbyRequest(searchNearbyRequest) for nearby search
Java
fragment.configureFromSearchByTextRequest(searchByTextRequest) // or fragment.configureFromSearchNearbyRequest(searchNearbyRequest) for nearby search
कॉम्पोनेंट में PlaceSearchFragmentListener को भी जोड़ा जा सकता है. यह ज़रूरी नहीं है. इससे कॉम्पोनेंट लोड होने, जगह चुने जाने (अगर चुनने की सुविधा चालू है) या कॉम्पोनेंट लोड होने में गड़बड़ी होने पर, आपको कॉलबैक मिलेंगे.
Kotlin
fragment.registerListener( object : PlaceSearchFragmentListener { override fun onLoad(places: List<Place>) {...} override fun onRequestError(e: Exception) {...} override fun onPlaceSelected(place: Place) {...} } )
Java
fragment.registerListener( new PlaceSearchFragmentListener() { @Override public void onLoad(List<? extends Place> places) {...} @Override public void onRequestError(Exception e) {...} @Override public void onPlaceSelected(Place place) {...} } )
Place Search कॉम्पोनेंट को पसंद के मुताबिक बनाना
कॉन्टेंट को पसंद के मुताबिक बनाना
आपको यह तय करना होगा कि आपका कॉम्पोनेंट कौनसा कॉन्टेंट दिखाएगा.इस उदाहरण में, कॉम्पोनेंट को जगह का पता और रेटिंग दिखाने के लिए कॉन्फ़िगर किया गया है.
Kotlin
val fragment = PlaceSearchFragment.newInstance(listOf(Content.ADDRESS, Content.RATING))
Java
PlaceSearchFragment fragment = PlaceSearchFragment.newInstance(listOf(Content.ADDRESS,Content.RATING));
आपके पास, जगह के हिसाब से खोज करने की सुविधा वाले कॉम्पोनेंट में दिखने वाले कॉन्टेंट को अपनी पसंद के मुताबिक बनाने का विकल्प भी होता है. इसके लिए, इन पहलुओं को अपनी पसंद के मुताबिक बनाया जा सकता है:
- PlaceSearchFragment.Content: कॉम्पोनेंट में दिखाया गया कॉन्टेंट.
- mediaSize: फ़्रैगमेंट के वर्टिकल ओरिएंटेशन में फ़ोटो का साइज़. डिफ़ॉल्ट वैल्यू
SMALLहै. - preferTruncation: इससे यह तय किया जाता है कि हर Place Details व्यू के टेक्स्ट को छोटा किया जाए या नहीं.
- attributionPosition: Google Maps एट्रिब्यूशन को कॉम्पोनेंट के सबसे ऊपर या सबसे नीचे दिखाना है या नहीं.
- selectable: सूची में मौजूद हर जगह को चुना जा सकता है या नहीं.
PlaceSearchFragment में, पसंद के मुताबिक बनाने के लिए कॉन्फ़िगरेशन जोड़ें.
Kotlin
fragment.preferTruncation = false fragment.attributionPosition = AttributionPosition.BOTTOM fragment.mediaSize = MediaSize.SMALL fragment.selectable = true
Java
fragment.setPreferTruncation(false) fragment.setAttributionPosition(AttributionPosition.BOTTOM) fragment.setMediaSize(MediaSize.SMALL) fragment.setSelectable(true)
ओरिएंटेशन को पसंद के मुताबिक बनाना
डिफ़ॉल्ट ओरिएंटेशन वर्टिकल होता है. हॉरिज़ॉन्टल ओरिएंटेशन के लिए, PlaceSearchFragment.newInstance() में Orientation.HORIZONTAL तय करें.
Kotlin
PlaceSearchFragment.newInstance( PlaceSearchFragment.ALL_CONTENT, Orientation.HORIZONTAL )
Java
PlaceSearchFragment.newInstance( PlaceSearchFragment.ALL_CONTENT, Orientation.HORIZONTAL )
थीम को पसंद के मुताबिक बनाना
फ़्रैगमेंट को इंस्टैंशिएट करते समय, ऐसी थीम तय की जा सकती है जो स्टाइल के किसी भी डिफ़ॉल्ट एट्रिब्यूट को बदल देती है. जगह की जानकारी वाले कॉम्पोनेंट के रंग, टाइपोग्राफ़ी, स्पेसिंग, बॉर्डर, और कोनों को अपनी पसंद के मुताबिक बनाया जा सकता है. डिफ़ॉल्ट वैल्यू PlacesMaterialTheme है.
जिन थीम एट्रिब्यूट को बदला नहीं गया है वे डिफ़ॉल्ट स्टाइल का इस्तेमाल करते हैं.
जगहों की जानकारी देने वाली यूआई किट में, गहरे रंग वाली थीम डिफ़ॉल्ट रूप से उपलब्ध होती है. इसलिए, आपको गहरे और हल्के रंग वाली, दोनों थीम को पसंद के मुताबिक बनाना पड़ सकता है. गहरे रंग वाली थीम को पसंद के मुताबिक बनाने के लिए, values-night/colors.xml में रंग के लिए कोई एंट्री जोड़ें.
थीमिंग के बारे में ज़्यादा जानने के लिए, पसंद के मुताबिक स्टाइलिंग सेक्शन देखें.
उदाहरण
Place Search कॉम्पोनेंट को इंस्टैंशिएट करना
Kotlin
val fragment: PlaceSearchFragment = PlaceSearchFragment.newInstance(PlaceSearchFragment.STANDARD_CONTENT) fragment.preferTruncation = false fragment.attributionPosition = AttributionPosition.BOTTOM fragment.mediaSize = MediaSize.SMALL fragment.selectable = true fragment.registerListener( object : PlaceSearchFragmentListener { override fun onLoad(places: List<Place>) {...} override fun onRequestError(e: Exception) {...} override fun onPlaceSelected(place: Place) {...} } ) supportFragmentManager .beginTransaction() .replace(R.id.fragment_container, fragment) .commitNow() fragment.configureFromSearchByTextRequest(searchByTextRequest)
Java
PlaceSearchFragment fragment = PlaceSearchFragment.newInstance(PlaceSearchFragment.STANDARD_CONTENT); fragment.setPreferTruncation(false) fragment.setAttributionPosition(AttributionPosition.BOTTOM) fragment.setMediaSize(MediaSize.SMALL) fragment.setSelectable(true) fragment.registerListener( new PlaceSearchFragmentListener() { @Override public void onLoad(List<? extends Place> places) {...} @Override public void onRequestError(Exception e) {...} @Override public void onPlaceSelected(Place place) {...} } ) getSupportFragmentManager() .beginTransaction() .replace(R.id.fragment_container, fragment) .commitNow(); fragment.configureFromSearchByTextRequest(searchByTextRequest)
थीम को पसंद के मुताबिक बनाना
जगहों की जानकारी देने वाली यूआई किट में, गहरे रंग वाली थीम डिफ़ॉल्ट रूप से उपलब्ध होती है. इसलिए, आपको गहरे और हल्के रंग वाली, दोनों थीम को पसंद के मुताबिक बनाना पड़ सकता है. गहरे रंग वाली थीम को पसंद के मुताबिक बनाने के लिए, values-night/colors.xml में रंग के लिए कोई एंट्री जोड़ें.
<style name="CustomizedTheme" parent="PlacesMaterialTheme"> <item name="placesColorPrimary">@color/app_primary_color</item> <item name="placesColorOnSurface">@color/app_color_on_surface</item> <item name="placesColorOnSurfaceVariant">@color/app_color_on_surface</item> <item name="placesTextAppearanceBodySmall">@style/app_text_appearence_small</item> <item name="placesCornerRadius">20dp</item> </style>