Piszę aplikację na Androida, gdzie tłem jest mapa i chcę umieścić na tym tle przyciski typu „Szukaj”, „Zaloguj się”. Utworzyłem xml jak poniżej:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/buttonLogReg"
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:layout_gravity="top"
        android:layout_weight="10"
        android:baselineAligned="false"
        android:text="@string/log_amp_reg"
        android:visibility="visible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0" />

    <org.osmdroid.views.MapView
        android:id="@+id/map"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        tools:ignore="MissingConstraints" >

    </org.osmdroid.views.MapView>

    <org.osmdroid.views.MapView
        android:id="@+id/mapview"
        tilesource="Mapnik"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

A także kod Java, taki jak:

public class MainActivity extends Activity {

    MapView map = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Context ctx = getApplicationContext();
        Configuration.getInstance().load(ctx, PreferenceManager.getDefaultSharedPreferences(ctx));
        setContentView(R.layout.activity_main);
        map = (MapView)findViewById(R.id.map);
        map.setTileSource(TileSourceFactory.MAPNIK);
        map.setBuiltInZoomControls(true);
        map.setMultiTouchControls(true);

        IMapController mapController = map.getController();
        mapController.setZoom(12.5);
        GeoPoint startPoint = new GeoPoint(49.20, 19.94);
        mapController.setCenter(startPoint);

        Button logreg = findViewById(R.id.buttonLogReg);
        logreg.setOnClickListener(onClickListener);
    }
    public void onResume(){
        super.onResume();
        map.onResume();
    }
    public void onPause(){
        super.onPause();
        map.onPause();
    }

    private View.OnClickListener onClickListener = new View.OnClickListener(){
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(getApplicationContext(), LoginRegister.class);
            startActivity(intent);
        }
    };
}

Moje pytanie brzmi: dlaczego nie widzę przycisku na ekranie Androida, widzę tylko ruchomą mapę? Czy ktoś mógłby mi pomóc w tej sprawie?

0
MaciejB 20 listopad 2019, 11:46
Dlaczego są dwie mapy? Czy próbowałeś również nadać kolor tła układowi zawierającemu przyciski.
 – 
sanjeev
20 listopad 2019, 11:49
Nie sprawdziłem drugiego, myślałem, że go usunąłem. Tak, wypróbowałem tę opcję z kolorem tła, ale też nie działa.
 – 
MaciejB
20 listopad 2019, 12:03
Nie używaj fill_parent lub match_parent jako wysokości dla mapy, jeśli to zrobisz, zajmie ona całą wysokość ekranu. Ponieważ używasz LinearLayout, możesz użyć weightSum i dodać layout_weights do przycisku i mapy
 – 
karthik vishnu kumar
20 listopad 2019, 12:30

1 odpowiedź

W rozmiarach map są dwie mapy problemów. Możesz je edytować .......

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"

android:orientation="vertical"

android:gravity="center" 

tools:context=".MainActivity">

<Button

    android:id="@+id/buttonLogReg"

    android:layout_width="match_parent"

    android:layout_height="30dp"

    android:layout_gravity="top"

    android:layout_weight="10"

    android:text="@string/log_amp_reg" />

<org.osmdroid.views.MapView

    android:id="@+id/map"

    android:layout_width="match_parent"

    android:layout_height="100dp"

    tools:ignore="MissingConstraints" >

</org.osmdroid.views.MapView>
0
Ibrahem Hamdy 20 listopad 2019, 13:14