Multiple Views werden nicht richtig angezeigt - Android Studio

  • Antworten:2
Samuel
  • Forum-Beiträge: 3

14.04.2018, 22:27:22 via Website

Hi, Ich arbeite momentan an einer Dokumentation für meine Bibliothek und nun bin ich dabei programmatisch neue Views in ein LinearLayout einzutragen. Leider klappt das nicht ganz, da meine zweite View nicht richtig angezeigt wird. Nun stelle ich mir die Frage, warum?
Hier mein Code:
MainActivity:

private void initializeClassLayout() {
    int classes = 12;
    final LinearLayout classLayout[] = new LinearLayout[classes];
    LinearLayout.LayoutParams viewParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    String[] allClasses = getResources().getStringArray(R.array.array_all_classes);
    String[] classesContentCode = getResources().getStringArray(R.array.array_all_classes_code);
    for (int i = 0; i < classes; i++){
        classLayout[i] = new LinearLayout(this);

        //Set Title
        String currTitle = allClasses[i];
        TextView title = new TextView(this);
        title.setLayoutParams(textParams);
        title.setGravity(Gravity.CENTER_HORIZONTAL);
        title.setTextSize(20f);
        title.setText(currTitle);

        //Set Code
        String currCode = classesContentCode[i];
        TextView code = new TextView(this);
        //String beautifulCode = setCodeSyntax(currCode);
        code.setLayoutParams(textParams);
        code.setTextColor(Color.BLACK);
        code.setTextSize(13f);
        code.setText(currCode);

        //Set View Specs
        classLayout[i].setLayoutParams(viewParams);
        if(android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN) {
            classLayout[i].setBackgroundDrawable(ContextCompat.getDrawable(this, R.drawable.classes_background) );
        } else {
            classLayout[i].setBackground(ContextCompat.getDrawable(this, R.drawable.classes_background));
        }

        classLayout[i].addView(title);
        classLayout[i].addView(code);

        if (i == 0){
            viewParams.setMargins(30, 50, 30, 30);
        } else {
            viewParams.setMargins(30, 30, 30, 30);
        }
        classesView.addView(classLayout[i]);
    }
}

Strings:

<string-array name="array_all_classes">
    <item>Buttons</item>
    <item>Textstyles</item>
    <item>Colors</item>
    <item>Backgrounds</item>
    <item>Borders</item>
    <item>Radius</item>
    <item>Sizes</item>
    <item>Transitions</item>
    <item>Filters</item>
    <item>Links</item>
    <item>Navigations</item>
    <item>Loaders</item>
</string-array>

<string-array name="array_all_classes_code">
    <item><![CDATA[<button class="button btn-normal-filled-dark">Dark Button Filled</button]]></item>
    <item><![CDATA[<button class="button button-dark btn-anim-ltr-dark">Dark Button Left to right</button>]]></item>
    <item><![CDATA[<button class="button button-dark btn-anim-rtl-dark">Dark Button Right to left</button>]]></item>
    <item><![CDATA[<button class="button button-dark btn-anim-ltr-dark">Dark Button Left to right</button>]]></item>
    <item><![CDATA[<button class="button button-dark btn-anim-ltr-dark">Dark Button Left to right</button>]]></item>
    <item><![CDATA[<button class="button button-dark btn-anim-ltr-dark">Dark Button Left to right</button>]]></item>
    <item><![CDATA[<button class="button button-dark btn-anim-ltr-dark">Dark Button Left to right</button>]]></item>
    <item><![CDATA[<button class="button button-dark btn-anim-ltr-dark">Dark Button Left to right</button>]]></item>
    <item><![CDATA[<button class="button button-dark btn-anim-ltr-dark">Dark Button Left to right</button>]]></item>
    <item><![CDATA[<button class="button button-dark btn-anim-ltr-dark">Dark Button Left to right</button>]]></item>
    <item><![CDATA[<button class="button button-dark btn-anim-ltr-dark">Dark Button Left to right</button>]]></item>
    <item><![CDATA[<button class="button button-dark btn-anim-ltr-dark">Dark Button Left to right</button>]]></item>
</string-array>

LinearLayout:

<LinearLayout
            android:id="@+id/layout_classes"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"></LinearLayout>

Das ganze sieht dann später so aus (die zweite View klappt nicht ganz):
image

Ich bedanke mich für jede Hilfe!

Kommentieren
swa00
  • Forum-Beiträge: 3.704

14.04.2018, 22:52:10 via Website

Hallo Samuel,

ich habe deinen Source nur quer gelesen und nicht studiert.

Du addest zwar die View , setzt aber kein Hide / Show und auch nicht die Relationen .

Alle fangen im übrigen am gleichen Punkt an und haben ein WRAP - Für mich sieht es so aus als
würden die sich eh überlagern.
Das Margin bringt dich da nicht weiter. Setze mal die Dimensionen feste und blende sie mal zur Probe aus.

P.S. Die Verwaltung in deinen ArrayPositionen ist hier nicht das gelbe vom Ei , das wird dich schnell
an die Android-Eigenschaften bringen - Nimm lieber Dynamische ( z.b. ArrayList)

— geändert am 15.04.2018, 09:55:55

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

Hilfreich?
Pascal P.
Kommentieren
Samuel
  • Forum-Beiträge: 3

15.04.2018, 12:55:04 via Website

Hi, danke für die hilfe :)
Ich habe das Problem gelöst, indem ich setOrientation benutzt hab.

Hilfreich?
Kommentieren