Gegeben:Android - Einblenden/Ausblenden Fragment läßt einen leeren Bereich
- zwei vertikal platziert Elemente auf dem Bildschirm (ViewPager und Fragment)
- Aktion in dem ersten aktuell ausgewählten Fragmente (ViewFlipper) zwischen text- toggelt basierte und WebView-basierte Ansicht im oberen Fragment und versteckt/zeigt das unterste Fragment.
Beobachtet:
- das untere Fragment Hiding lässt einen leeren Raum, in dem das untere Fragment befindet.
Ich habe versucht, sowohl relativ als auch Linearlayout (mit oben nach weight=1
gesetzt Fragmente), aber beide haben keinen Effekt nach unten Fragment ich noch leeren Raum habe auf der Unterseite
entfernt Hier Top-Level-Layout-Datei:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="0dip" android:layout_weight="1"/>
<!-- This gets replaced with appropriate fragment at run time -->
<LinearLayout
android:id="@+id/scrollFragmentPlaceholder"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="110dip" />
</LinearLayout>
hier ist Code, der das Fragment
Fragment scroll = getSupportFragmentManager().findFragmentById(R.id.scrollFragment);
if (scroll.isHidden() == isWebView)
return; // already handled, do nothing
FragmentTransaction tr = getSupportFragmentManager().beginTransaction();
if (scroll != null && scroll.isAdded()) {
if (isWebView) {
tr.hide(scroll);
} else
tr.show(scroll);
}
tr.commit();
Und hier schaltet ist, wie es aussieht:
Haben Sie * .measure versucht zu tun() in der Ansicht, die bleibt ? – Codeman
Nicht wirklich, aber wenn ich die Reihenfolge umkehren und Textversion anzeigen/unten ausblenden zeigt es richtig – Bostone
WebView für Android ist verdammt seltsam. Könnten Sie ein paar Screenshots hinzufügen, damit ich genauer sehen kann, worüber Sie sprechen? Außerdem müssen Sie in beiden Ansichten layoutWeight = 1 haben, wenn sie die Hälfte des verfügbaren Speicherplatzes einnehmen sollen. Sie müssen sicherstellen, dass Sie auch orientation = "vertical" in der übergeordneten Ansicht angeben. – Codeman