2017-02-27 60 views
0

當我在我的佈局文件中聲明一個PreferenceFragment這樣片段佔用更多的空間比它的內容將需要

<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因爲所有的空間正在被片段佔領的WebView高度等於零( )。

但是爲什麼呢?我聲明瞭片段的高度「WRAP_CONTENT」,所以應該只佔用它需要的空間......

任何幫助表示讚賞:)

編輯:

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

片段的視圖,沒有設置爲'''match_parent'''的高度? – danypata

+0

它不應該設置爲match_parent。我的問題是,它的行爲就像它將設置爲match_parent。 – Makk0

+1

我建議檢查Fragment的視圖(如果設置爲match_parent的話,我假設你創建了一個具有用於佈局的xml文件的片段)沒有將高度設置爲''match_parent'''那麼這是預期的行爲。 – danypata

回答

0

您的WebView不可見,因爲您的根佈局是水平LinearLayout。 您的PreferenceFragment的寬度爲match_parent,因此WebView沒有空間。 此外,您使WebView匹配所有可用空間使用重量。

我假設你想擁有PreferenceFragment頂部與wrap_content高度。並且在PreferenceFragment以下有WebView,它匹配所有其餘的垂直空間。

在這種情況下,你應該這樣做:

<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> 

變化LinearLayout定向垂直。 爲您的WebView開關寬度和高度選項。並將寬度更改爲match_parent。

希望它有幫助

+0

你先生,是上帝!非常感謝你 :) – Makk0

相關問題