Ich habe eine RelativeLayout, die drei Elemente enthält: eine TableLayout am oberen Rand, die einige Steuerelemente enthält (layout_alignParentTop = true), ein LinearLayout am unteren Rand (layout_alignParentBottom = true), das ein paar Buttons und enthält ein ListView, das sich zwischen ihnen erstreckt (mit Layout_unterhalb und Layout_über die beiden Elemente). Das funktioniert gut, aber unter bestimmten Umständen muss das untere LinearLayout verschwinden. Wenn ich setVisibility verwende, um es auf View.GONE zu setzen oder seine Höhe mit setLayoutParams() auf 0 zu setzen, lehnt die ListView hartnäckig die Größenänderung ab, um den neu frei gewordenen Platz einzunehmen. Ich habe versucht, requestLayout() auf im Grunde alles in der Hierarchie aufzurufen, und nichts scheint zu funktionieren. Wenn ich den Hierarchie-Viewer einschalte, kann ich sehen, dass die Ansicht weg ist/layout_height von 0 hat, aber immer noch nicht funktioniert.Android: Einstellung der Ansichtshöhe auf 0
Ironischerweise, nachdem der Hierarchie-Viewer fertig ist, korrigiert sich das Layout selbst. Ich denke, dass es inakzeptabel ist, wenn meine Benutzer den Hierarchie-Viewer ausführen.
BEARBEITEN: Das mittlere Layout ist eigentlich ein RelativeLayout, das die ListView enthält, was wichtig sein könnte, ich werde versuchen, es zu beseitigen. Ich habe eine vereinfachte Version meiner XML-Datei veröffentlicht, die eine Vorstellung davon gibt, was ich sehe.
<RelativeLayout
android:id="@+id/main_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/top_table"
android:layout_alignParentTop="true"
android:stretchColumns="2"
android:shrinkColumns="1">
<!-- removed for simplicity -->
</TableLayout>
<RelativeLayout
android:id="@+id/main_content"
android:descendantFocusability="afterDescendants"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/title_table"
android:layout_above="@id/ad_toolbar">
<!-- removed for simplicity -->
<ListView
android:id="@+id/android:list"
android:layout_alignParentTop="true"
android:descendantFocusability="afterDescendants"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
<LinearLayout
android:id="@+id/bottom_layout"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:layout_height="wrap_content"
android:layout_width="fill_parent">
<!-- removed for simplicity -->
</LinearLayout>
</RelativeLayout>
können Sie die .xml des Layouts veröffentlichen? –
Das eigentliche XML ist ziemlich kompliziert, da das Layout aus ein paar Layoutdateien besteht, die von verschiedenen Aktivitäten verwendet werden, aber ich habe oben eine vereinfachte Version veröffentlicht. Und ich erkannte, dass die mittlere Region eigentlich eine RelativeLayout ist, die die ListView enthält, was einen Unterschied machen könnte, ich werde versuchen, sie zu eliminieren. – jjb