Desiner Ansicht passt nicht

  • Antworten:6
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 4

27.07.2017, 22:39:07 via Website

Hallo,
wahrscheinlich ist das eine ganz dumme Sache, aber ich bekomms nicht hin.

Wenn ich im Designer etwas erstelle ( RelativLayout ) dann wird es anders auf dem Gerät dargestellt.
Er scheint die Größe der Überschift nicht mit zu rechnen.
Die Elemente ganz oben werden davon überdeckt.

Was mache ich falsch?

Danke

Antworten
  • Forum-Beiträge: 2.901

27.07.2017, 22:46:07 via Website

Hallo Patrick,

wenn du ein 1:1 wysiwyg haben möchtest , dann musst du auch deine Einstellungen so anpassen , wie dein device ist .
Ansonsten musst du bei der Androidprogrammierung grundsätzlich IMMER verschiedene Devices
und Layouts berücksichtigen.

Es gibt keine eierlegende Wollmilchsau .

— geändert am 27.07.2017, 22:46:24

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
  • Forum-Beiträge: 4

28.07.2017, 09:32:58 via Website

Ich meine die Toolbar, nicht eine Überschrift...
wobei es eh merkwürdig ist das ich überhaupt eine habe, da ich kein xml tag dafür habe.
Wenn ich mir ein Tag einfüge habe ich im Designer 2 Toolbars aber im Emulator trotzdem nur eine.

naja.
Habe grade gesehen das das in der MainActivity nicht so ist.
Kann es sein das ich die "Unter-"Activities falsch lade ?

            Intent intent = new Intent(this, RoutenActivity.class);
        startActivity(intent);

MfG
Patrick

Antworten
  • Forum-Beiträge: 2.901

28.07.2017, 09:36:05 via Website

Hallo Patrick,

Ich meine die Toolbar, nicht eine Überschrift...

du schreibst aber oben

Er scheint die Größe der Überschift nicht mit zu rechnen.

Wir können ohne Code/XML schlecht etwas nachvollziehen , das käme einem Rätseln gleich.
Das was du oben geschickt hast ist ein Standard Intent und hat nichts mit dem Layout/Toolbar zu tun .

Wenn du also genauere Hilfe benötgst , brauchen wir Code/XML/Screenshot

— geändert am 28.07.2017, 10:00:38

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
  • Forum-Beiträge: 4

28.07.2017, 12:52:24 via Website

Hallo und Danke erstmal....

hier ist meine Ansicht im Editor
image

das Ganze sieht im Emulator und auf meinem Handy so aus:
image

und mein XML Code sieht so aus ( Die Links im RelativLayout musste ich entfernen (Um Spam in unserem Forum zu vermeiden, können neue Mitglieder vorerst keine Links auf externe Webseiten veröffentlichen.))

<?xml version="1.0" encoding="utf-8"?>

android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app=""
xmlns:tools=""
android:orientation="vertical"
tools:context="com.example.patri.karten3.RoutenActivity">

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/seekBar"
    android:layout_marginEnd="21dp"
    android:layout_marginRight="21dp"
    android:layout_marginTop="27dp"
    android:text="Neue Route" />

<ListView
    android:id="@+id/listRouten"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/button"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="75dp" />

<Switch
    android:id="@+id/switch1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="30dp"
    android:text="66"
    android:textSize="18sp" />

<EditText
    android:id="@+id/editText4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/button"
    android:layout_toLeftOf="@+id/button"
    android:layout_toStartOf="@+id/button"
    android:ems="10"
    android:inputType="textPersonName"
    android:text="Name" />

zur Sicherheit hier auch der Java Code

package com.example.patri.karten3;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;

public class RoutenActivity extends AppCompatActivity {

ListView listView;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_routen);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });

    listView = (ListView) findViewById( R.id.listRouten );

    //ArrayAdapter<String> listAdapter = new ArrayAdapter<String>( RoutenActivity.this , R.layout.)

    final String[] testStrings = { "hamm" , "bacon" , "bread"};

    final ArrayList<String> testStrings2 = new ArrayList<String>();
    testStrings2.add("bla1");
    testStrings2.add("bla2");
    testStrings2.add("bla3");

    final ListAdapter listAdapter = new ArrayAdapter<String>( this , android.R.layout.simple_list_item_1 , testStrings2);


    listView.setAdapter( listAdapter );
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            Log.d("i ", "" + i);
            Log.d("l ", "" + l);
            testStrings2.add( "asdfas");
            listView.setVisibility( View.INVISIBLE );
            listView.setVisibility( View.VISIBLE );
            //listAdapter.
        }
    });


}

}

Antworten
  • Forum-Beiträge: 2.901

28.07.2017, 13:01:36 via Website

Hallo Patrick,

a) Mir ist aufgefallen, dass du zwar oben schreibst , dass du ein ReleativeLayout nimmst , aber warum hat der eine orientation vertical drin.
Das war wohl mal vorher ein Liniearlayout - oder ?

android:orientation="vertical"

Bei einem Relative-Layout hat das nichts zu suchen.

b) Desweiteren musst du berücksichtigen , dass du in einem RelativeLayout absolute Positionen setzen musst.
Dein Button fängt oben an ( ausser die paar Magins), dein ListView fängt auch oben an - würde also dein Button
und dein Switch schon überblenden , oder umgekehrt - je nach Reihenfolge .

Setze deine Elemente in einem RelativeLayout genau dahin , wo sie sein sollen ( Mit Margin) und zwar untereinander.
Du kannst auch gerne den Bezugspunkt des Starts dabei angeben .

Aber so ist das ganz klar , dass du bei einem Relative-Container jede Menge Überblendungen hast

— geändert am 28.07.2017, 13:02:27

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
  • Forum-Beiträge: 4

05.08.2017, 14:54:09 via Website

ja es lag wohl daran... hab mir das irgendwie falsch zusammen geschustert...
habe es auch nicht mehr hin bekommen.

Habe die ganze Seite nochmal neu gemach und ganz zu Anfang direkt das RelativeLayout genommen und damit hat es geklappt !

Vielen Dank für deine Hilfe :-)

Antworten

Empfohlene Artikel