প্ল্যাটফর্ম নির্বাচন করুন: অ্যান্ড্রয়েড আইওএস জাভাস্ক্রিপ্ট

স্থান অনুসন্ধান উপাদান

Places UI Kit-এর Place Search কম্পোনেন্টটি কোনো স্থান অনুসন্ধানের ফলাফল একটি তালিকায় প্রদর্শন করে।

প্লেসেস UI কিট প্লেস সার্চ কম্পোনেন্ট

আপনি স্থান অনুসন্ধান তালিকাটি কাস্টমাইজ করতে পারেন। আপনি নির্দিষ্ট করতে পারেন:

  • প্রদর্শনের জন্য বিষয়বস্তু
  • উল্লম্ব বিন্যাসে মিডিয়ার আকার
  • পাঠ্য সংক্ষিপ্তকরণ
  • অভিমুখীকরণ
  • আপনার ব্র্যান্ড এবং অ্যাপের ডিজাইন ল্যাঙ্গুয়েজের সাথে সামঞ্জস্যপূর্ণ থিম ওভাররাইড।
  • আরোপের অবস্থান
  • একটি স্থান নির্বাচনযোগ্য কিনা

আপনি SearchByTextRequest অথবা SearchNearbyRequest সম্পাদন করার জন্য অনুরোধটি কাস্টমাইজও করতে পারেন।

বিলিং

প্রতিবার configureFromSearchByTextRequest() বা configureFromSearchNearbyRequest() বাইন্ডিং ভ্যালু পরিবর্তন করা হলে আপনাকে বিল করা হবে।

আপনার অ্যাপে স্থান অনুসন্ধান যোগ করুন

আপনার লেআউটে PlaceSearchFragment ফ্র্যাগমেন্টটি যোগ করে প্লেস সার্চ উইজেটটি ব্যবহার করুন।

যখন আপনি আপনার অ্যাপে কোনো টেক্সট সার্চ বা কাছাকাছি অনুসন্ধানের ফলাফল লোড করতে চান, তখন রিকোয়েস্ট সহ configureFromSearchByTextRequest() বা configureFromSearchNearbyRequest() কল করুন।

কোটলিন

fragment.configureFromSearchByTextRequest(searchByTextRequest)

// or fragment.configureFromSearchNearbyRequest(searchNearbyRequest) for nearby search

জাভা

fragment.configureFromSearchByTextRequest(searchByTextRequest)

// or fragment.configureFromSearchNearbyRequest(searchNearbyRequest) for nearby search
    

কম্পোনেন্ট লোড হলে, কোনো স্থান নির্বাচন করা হলে (যদি নির্বাচনযোগ্য হিসেবে সেট করা থাকে) অথবা কম্পোনেন্ট লোড করতে কোনো ত্রুটি হলে কলব্যাক পাওয়ার জন্য আপনি কম্পোনেন্টটিতে একটি ঐচ্ছিক PlaceSearchFragmentListener যোগ করতে পারেন।

কোটলিন

fragment.registerListener(
  object : PlaceSearchFragmentListener {
    override fun onLoad(places: List<Place>) {...}
    override fun onRequestError(e: Exception) {...}
    override fun onPlaceSelected(place: Place) {...}
  }
)
  

জাভা

fragment.registerListener(
  new PlaceSearchFragmentListener() {
    @Override public void onLoad(List<? extends Place> places) {...}
    @Override public void onRequestError(Exception e) {...}
    @Override public void onPlaceSelected(Place place) {...}
  }
)
    

স্থান অনুসন্ধান উপাদানটি কাস্টমাইজ করুন

বিষয়বস্তু কাস্টমাইজ করুন

আপনার কম্পোনেন্টটি কোন বিষয়বস্তু প্রদর্শন করবে তা আপনাকে অবশ্যই নির্দিষ্ট করতে হবে।

এই উদাহরণটি স্থানটির ঠিকানা ও রেটিং প্রদর্শন করার জন্য কম্পোনেন্টটিকে কনফিগার করে।

কোটলিন

val fragment = PlaceSearchFragment.newInstance(listOf(Content.ADDRESS, Content.RATING))
    

জাভা

PlaceSearchFragment fragment = PlaceSearchFragment.newInstance(listOf(Content.ADDRESS,Content.RATING));
    

এছাড়াও আপনি আপনার প্লেস সার্চ কম্পোনেন্টে প্রদর্শিত কন্টেন্টের নিম্নলিখিত দিকগুলো ঐচ্ছিকভাবে কাস্টমাইজ করতে পারেন:

  • PlaceSearchFragment.Content : কম্পোনেন্টটিতে প্রদর্শিত বিষয়বস্তু।
  • mediaSize : ফ্র্যাগমেন্টের উল্লম্ব অবস্থানে ছবির আকার। ডিফল্ট মান হলো SMALL
  • preferTruncation : প্রতিটি স্থানের বিবরণ দেখার লেখা সংক্ষিপ্ত করা হবে কিনা।
  • attributionPosition : কম্পোনেন্টের উপরে নাকি নীচে গুগল ম্যাপস অ্যাট্রিবিউশনটি দেখানো হবে।
  • নির্বাচনযোগ্য : তালিকার প্রতিটি স্থান নির্বাচনযোগ্য কিনা।

PlaceSearchFragment এ আপনার কাস্টমাইজেশন কনফিগারেশন যোগ করুন।

কোটলিন

fragment.preferTruncation = false
fragment.attributionPosition = AttributionPosition.BOTTOM
fragment.mediaSize = MediaSize.SMALL
fragment.selectable = true
    

জাভা

fragment.setPreferTruncation(false)
fragment.setAttributionPosition(AttributionPosition.BOTTOM)
fragment.setMediaSize(MediaSize.SMALL)
fragment.setSelectable(true)
    

অভিমুখ কাস্টমাইজ করুন

ডিফল্ট ওরিয়েন্টেশন হলো ভার্টিকাল। হরাইজন্টাল ওরিয়েন্টেশনের জন্য, PlaceSearchFragment.newInstance() -এ Orientation.HORIZONTAL উল্লেখ করুন।

কোটলিন

PlaceSearchFragment.newInstance(
    PlaceSearchFragment.ALL_CONTENT,
    Orientation.HORIZONTAL
)
    

জাভা

PlaceSearchFragment.newInstance(
    PlaceSearchFragment.ALL_CONTENT,
    Orientation.HORIZONTAL
)
      

থিমটি কাস্টমাইজ করুন

একটি ফ্র্যাগমেন্ট ইনস্ট্যানশিয়েট করার সময়, আপনি এমন একটি থিম নির্দিষ্ট করতে পারেন যা যেকোনো ডিফল্ট স্টাইল অ্যাট্রিবিউটকে ওভাররাইড করে। আপনি আপনার Place Details কম্পোনেন্টের রং, টাইপোগ্রাফি, স্পেসিং, বর্ডার এবং কর্নার কাস্টমাইজ করতে পারেন। ডিফল্ট থিমটি হলো PlacesMaterialTheme

যেসব থিম অ্যাট্রিবিউট ওভাররাইড করা হয় না, সেগুলো ডিফল্ট স্টাইল ব্যবহার করে।

Places UI Kit ডিফল্টরূপে একটি ডার্ক থিম প্রদান করে, তাই আপনার ডার্ক এবং লাইট উভয় থিমই কাস্টমাইজ করার প্রয়োজন হতে পারে। ডার্ক থিমটি কাস্টমাইজ করতে, values-night/colors.xml ফাইলে রঙের জন্য একটি এন্ট্রি যোগ করুন।

থিমিং সম্পর্কে আরও তথ্যের জন্য কাস্টম স্টাইলিং বিভাগটি দেখুন।

উদাহরণ

প্লেস সার্চ কম্পোনেন্টটি ইনস্ট্যানশিয়েট করুন

কোটলিন

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)
    

জাভা

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)
    

থিমটি কাস্টমাইজ করুন

Places UI Kit ডিফল্টরূপে একটি ডার্ক থিম প্রদান করে, তাই আপনার ডার্ক এবং লাইট উভয় থিমই কাস্টমাইজ করার প্রয়োজন হতে পারে। ডার্ক থিমটি কাস্টমাইজ করতে, 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>