مستندات جامع اندروید
نسخه 1.0.3
هدف از این بخش از پروژه بررسی نحوه فعالسازی و غیرفعالسازی لایه نقاط کسب و کارها است.
activity_poi_layer.xml
:
در این صفحه، علاوه بر المان نقشه نشان، یک ToggleButton
برای فعال یا غیرفعال کردن لایه نقاط کسب و کارها وجود دارد.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activity.POILayerActivity">
<org.neshan.mapsdk.MapView
android:id="@+id/mapview"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:background="@drawable/toggle_button_bg"
android:checked="true"
android:elevation="8dp"
android:onClick="togglePOILayer"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:textColor="@color/white"
android:textOff="لایه POI"
android:textOn="لایه POI"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:targetApi="m" />
</androidx.constraintlayout.widget.ConstraintLayout>
POILayerActivity.kt
:
متد initLayoutRefrences
جهت مقداردهی اولیه کردن به تمامی المانهای مربوط به رابط کاربری نوشته شدهاست. به دلیل این که لازم است تا المان اندرویدی نقشه نشان ابتدا به طور کامل ایجاد شود و سپس با آن تعامل برقرار شود (متدهای مختلف بر روی المان نقشه اجرا شود)، تمامی متدهای مربوط به رابط کاربری باید در متد onStart
انجام شوند.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_poi_layer)
}
override fun onStart() {
super.onStart()
// everything related to ui is initialized here
initLayoutReferences()
}
// We use findViewByID for every element in our layout file here
private fun initViews() {
map = findViewById(R.id.mapview)
}
در متد initMap
ابتدا موقعیت و بزرگنمایی نقشه به حالت دلخواه تنظیم می شود. سپس لایه اطلاعات کسب و کار ها با استفاده از فیلد isPoiEnabled
فعال می گردد.
// Initializing map
private void initMap(){
// Setting map focal position to a fixed position and setting camera zoom
map.moveCamera(new LatLng(35.767234, 51.330743),0 );
map.setZoom(14,0);
map.setPoiEnabled(true);
}
در این متد بررسی میشود که اگر toggleButton
موجود در رابط کاربری در حالت انتخاب شده باشد، لایه اطلاعات کسب و کارها با استفاده از فیلد isPoiEnabled
شیء map
فعال می شود و در غیر اینصورت این لایه غیرفعال می شود.
fun togglePOILayer(view: View) {
var toggleButton: ToggleButton = view as ToggleButton
map.isPoiEnabled = toggleButton.isChecked
}