2017-02-27 3 views
0

brauchen Wenn ich eine PreferenceFragment in meinem Layout-Datei wie dieseFragment nimmt mehr Platz als es der Inhalt würde

<LinearLayout 
     android:id="@+id/webViewLayout" 

     android:layout_width="match_parent" 
     android:layout_height="match_parent" 

     android:orientation="horizontal"> 

     <fragment 
      android:id="@+id/toggleView" 

      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 

      android:name="path_to_fragment.ToggleView_PrefFragment" /> 

     <WebView 
      android:id="@+id/webView" 

      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" /> 

</LinearLayout> 

only the PreferenceFragment appears on the screen und die Höhe des WebView erklären gleich Null ist (weil alle der Raum durch das Fragment besetzt wird).

Aber warum ist das? Ich bin das Fragment in der Höhe als "wrap_content" erklärt, so sollte es nur den Raum, es zu ...

Jede Hilfe ist willkommen :)

EDIT muss nehmen:

ToggleView_PrefFragment:

package fragment; 

import android.os.Bundle; 
import android.preference.PreferenceFragment; 

import R; 

public final class ToggleView_PrefFragment extends PreferenceFragment { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     addPreferencesFromResource(R.xml.toggle_view); 

    } 
} 

toggle_view.xml:

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> 

    <CheckBoxPreference 
     android:defaultValue="false" 
     android:summary="Summary" 
     android:title="Title" 
    /> 

</PreferenceScreen> 
+0

Aus der Sicht des Fragments hilft, nicht über die Höhe auf '' 'match_parent'''? – danypata

+0

Es sollte nicht auf match_parent gesetzt werden. Mein Problem ist, dass es sich so verhält, als wäre es auf match_parent gesetzt. – Makk0

+1

Ich schlug vor, zu überprüfen, ob die Ansicht des Fragments (ich nehme an, Sie erstellen ein Fragment, das eine XML-Datei für das Layout hat) nicht die Höhe auf '' 'match_parent''' hat, wenn es auf '' 'match_parent'' gesetzt ist 'Dann ist das Verhalten zu erwarten. – danypata

Antwort

0

Ihre WebView kann nicht sichtbar sein, da Ihr Root-Layout horizontalLinearLayout ist. Ihre PreferenceFragment hat Breite, so gibt es keinen Platz für WebView. Zusätzlich haben Sie Ihren WebView gemacht, um alle verfügbaren Platz mit Gewicht zu entsprechen.

Ich nehme an, Sie möchten PreferenceFragment oben mit wrap_content Höhe haben. Und unter PreferenceFragment haben Sie WebView, die alle restlichen vertikalen Raum entspricht.

In diesem Fall, dass Sie so etwas wie tun sollten:

<LinearLayout 
     android:id="@+id/webViewLayout" 

     android:layout_width="match_parent" 
     android:layout_height="match_parent" 

     android:orientation="vertical"> 

     <fragment 
      android:id="@+id/toggleView" 

      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 

      android:name="path_to_fragment.ToggleView_PrefFragment" /> 

     <WebView 
      android:id="@+id/webView" 

      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" /> 

</LinearLayout> 

ändern LinearLayout Orientierung vertikale. Für Ihre WebView Switch Breite und Höhe Optionen. Und ändern Sie die Breite in match_parent.

Hoffen, dass es

+0

Sie, mein Herr, sind ein Gott! Vielen Dank :) – Makk0

Verwandte Themen