当我在布局文件中声明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的高度等于零(因为片段占用了所有空间)。
但为什么呢?我将片段的高度声明为&#34; wrap_content&#34;,所以它应该只占用它所需的空间......
感谢任何帮助:)
修改
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 :(得分: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。
希望有所帮助