Android Studio XML Element verändert Attributen wie gravity, obwohl nicht programmiert.

  • Antworten:4
  • Bentwortet
Gelöschter Account
  • Forum-Beiträge: 47

07.02.2017, 22:16:28 via Website

Hallo liebe Community, ich habe ein Problem das ich mir nicht erklären kann.
Ich habe folgenden QuellCode:

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_below="@+id/relativeLayout2"
    android:layout_centerHorizontal="true"
    android:layout_margin="6dp"
    android:id="@+id/tableLayout2">



    <TableRow
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:layout_gravity="center"
        android:gravity="center">
        <TextView
            android:textAlignment="center"
            android:layout_marginRight="6dp"
            android:background="@color/colorGrey"
            android:gravity="center"
            android:textColor="@color/colorBlack"
            android:textSize="10dp"
            android:layout_width="15dp"
            android:layout_height="50dp"
            android:text="@string/txt_wochentag_Mo"
            android:id="@+id/TextViewWochentagMontagNormal"
            android:layout_alignEnd="@+id/imageViewWochentagMontag"
            android:layout_alignParentBottom="true"
            android:layout_alignStart="@+id/imageViewWochentagMontag"
            android:layout_alignParentTop="true"
            android:layout_weight="0.1" />


        <TextView
            android:textAlignment="center"
            android:layout_marginRight="6dp"
            android:background="@color/colorGrey"
            android:layout_weight="0.1"
            android:gravity="center"
            android:textColor="@color/colorBlack"
            android:textSize="10dp"
            android:layout_width="15dp"
            android:layout_height="match_parent"
            android:text="@string/txt_wochentag_Di"
            android:id="@+id/TextViewWochentagDienstagNormal"
            android:layout_alignBottom="@+id/imageViewWochentagMontag"
            android:layout_alignStart="@+id/imageViewWochentagDienstag"
            android:layout_alignEnd="@+id/imageViewWochentagDienstag"
            android:layout_alignParentTop="true" />

        <TextView
            android:layout_marginRight="6dp"
            android:background="@color/colorGrey"
            android:layout_weight="0.1"
            android:gravity="center"
            android:textColor="@color/colorBlack"
            android:textSize="10dp"
            android:layout_width="15dp"
            android:layout_height="match_parent"
            android:text="@string/txt_wochentag_Mi"
            android:id="@+id/TextViewWochentagMittwochNormal"
            android:layout_alignEnd="@+id/imageViewWochentagMittwoch"
            android:layout_alignStart="@+id/imageViewWochentagMittwoch"
            android:layout_alignBottom="@+id/imageViewWochentagMittwoch"
            android:layout_alignParentTop="true" />

        <TextView
            android:layout_marginRight="6dp"
            android:background="@color/colorGrey"
            android:layout_weight="0.1"
            android:gravity="center"
            android:textColor="@color/colorBlack"
            android:textSize="10dp"
            android:layout_width="15dp"
            android:layout_height="match_parent"
            android:text="@string/txt_wochentag_Do"
            android:id="@+id/TextViewWochentagDonnerstagNormal"
            android:layout_alignBottom="@+id/imageViewWochentagDienstag"
            android:layout_alignEnd="@+id/imageViewWochentagDonnerstag"
            android:layout_alignStart="@+id/imageViewWochentagDonnerstag"
            android:layout_alignParentTop="true" />

        <TextView
            android:layout_marginRight="6dp"
            android:background="@color/colorGrey"
            android:layout_weight="0.1"
            android:gravity="center"
            android:textColor="@color/colorBlack"
            android:textSize="10dp"
            android:layout_width="15dp"
            android:layout_height="match_parent"
            android:text="@string/txt_wochentag_Fr"
            android:id="@+id/TextViewWochentagFreitagNormal"
            android:layout_alignEnd="@+id/imageViewWochentagFreitag"
            android:layout_alignBottom="@+id/imageViewWochentagFreitag"
            android:layout_alignStart="@+id/imageViewWochentagFreitag"
            android:layout_alignTop="@+id/TextViewWochentagDonnerstagNormal" />

        <TextView
            android:layout_marginRight="6dp"
            android:background="@color/colorGrey"
            android:gravity="center"
            android:textColor="@color/colorBlack"
            android:textSize="10dp"
            android:layout_width="15dp"
            android:layout_height="match_parent"
            android:text="@string/txt_wochentag_Sa"
            android:id="@+id/TextViewWochentagSamstagNormal"
            android:layout_alignBottom="@+id/imageViewWochentagDonnerstag"
            android:layout_alignStart="@+id/imageViewWochentagSamstag"
            android:layout_alignEnd="@+id/imageViewWochentagSamstag"
            android:layout_alignTop="@+id/TextViewWochentagFreitagNormal"
            android:layout_weight="0.1" />

        <TextView
            android:background="@color/colorGrey"
            android:gravity="center"
            android:textColor="@color/colorBlack"
            android:textSize="10dp"
            android:layout_width="15dp"
            android:layout_height="match_parent"
            android:text="@string/txt_wochentag_So"
            android:id="@+id/TextViewWochentagSonntagNormal"
            android:layout_alignBottom="@+id/imageViewWochentagFreitag"
            android:layout_alignEnd="@+id/imageViewWochentagSonntag"
            android:layout_alignStart="@+id/imageViewWochentagSonntag"
            android:layout_alignParentTop="true"
            android:layout_weight="0.1" />


    </TableRow>






</TableLayout>

Auf die TextViews kann man drücken und sie ändern dann die Farbe und Textfarbe.
Und so sieht es am Anfang aus:

image

Wenn ich drauf drücke sieht es folgendermaßen aus:
image

Nun seit dem ich die folgenden Codezeilen:

 private void invertColours(Boolean activeClicked, TextView textView)
{
    if(activeClicked)
    {
        TextViewaufgabeErstellenDatumAnzeige.setText(getContext().getString(R.string.txt_woechentliche_erinnerungen)); //NEU NEU
        TextViewaufgabeErstellenDatumAnzeige.setClickable(false); //NEU NEU
        textView.setTextColor(ContextCompat.getColor(getContext(), R.color.colorWhite));
        textView.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.colorPrimary));
    }
    else
    {
        textView.setTextColor(ContextCompat.getColor(getContext(), R.color.colorBlack));
        textView.setBackgroundColor(ContextCompat.getColor(getContext(), R.color.colorGrey));
        checkIsWoechentlich(); //NEU NEU
    }
}

... hinzugefügt habe funktioniert es nicht mehr wie es sollte. Das Endergebnis sieht dann folgendermaßen aus:

image

Kann mir einer sagen warum das passiert? Ich übergebe an die funktion die referenz von der TextView von der die farbe invertiert werden soll. Und genau das selbe Problem habe ich in meiner ListView. Da passiert genau das selbe.

Viele Grüße Subrim

Antworten
Gelöschter Account
  • Forum-Beiträge: 47

14.02.2017, 18:38:21 via Website

Habe es selber gelöst.

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

14.02.2017, 18:51:34 via App

Hallo subrim,
Willst du uns auch noch erklären wie?
Vielleicht hilft das ja jemandem der ein ähnliches Problem hat ;)

LG Pascal //It's not a bug, it's a feature. :) ;)

Gelöschter Account

Antworten
Gelöschter Account
  • Forum-Beiträge: 47

16.02.2017, 21:03:36 via Website

Das problem hierbei lag, das ich die TextView-Höhe auf "wrap_content" setzten musste. Aber warum kann ich mir das ehrlich gesagt nicht erklären. Ich glaube das lag einfach daran das er da versucht hat immer zu zentrieren und durch den zugriff auf das elemt es einfach falsch zentriert wurde weil die Grenzen der TextView nicht auf der höhe waren.

Antworten