AlertDialog (с картой) открывается со второго раза
Сам код
public class testcl extends AppCompatActivity implements com.huawei.hms.maps.OnMapReadyCallback {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MapsInitializer.initialize(this);
MapsInitializer.setApiKey(key_huawei_map_api);
setContentView(R.layout.testcl);
LayoutInflater LI_new_group = LayoutInflater.from(this);
View window_dialog = LI_new_group.inflate(R.layout.add_zone_dialog, null);
SupportMapFragment fragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.add_zone_map_huawei);
assert fragment != null;
fragment.getMapAsync(this);
findViewById(R.id.button).setOnClickListener(v2 -> {
if (window_dialog.getParent() != null) {
((ViewGroup) window_dialog.getParent()).removeView(window_dialog);
}
new MaterialAlertDialogBuilder(this)
.setView(window_dialog)
.setCancelable(false)
.setNegativeButton(R.string.lang_cancel, (dialog, which) -> dialog.dismiss())
.setPositiveButton(R.string.lang_ok, (dialog, which) -> dialog.dismiss())
.show();
});
}
public void onMapReady(HuaweiMap huaweiMap) {
}
}
Активити testcl с кнопкой (по нажатию на которою открывается окно)
<androidx.constraintlayout.widget.ConstraintLayout...>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
Активити add_zone_dialog для окна
<androidx.constraintlayout.widget.ConstraintLayout...>
<androidx.fragment.app.FragmentContainerView
android:id="@+id/add_zone_map_huawei"
class="com.huawei.hms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
При нажатии на кнопку первый раз - ничего не происходит, второй раз - открывается 2 окна (одно из которых с картой, второе пустое).
Цель: чтоб открывалось с первого раза с картой. С GoogleMap
все ок, а вот HuaweiMap
не хочет. Кто подскажет? Куда копать? И MaterialAlertDialogBuilder
и AlertDialog
ведут себя одинаково
Источник: Stack Overflow на русском