我有一个活动,它有一个带有垂直 LinearLayout 的 ScrollView,它有两个片段,它们是 PreferenceFragment 实例,如以下布局文件所示:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="wrap_content"
android:layout_width="match_parent"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:context="com.foo.app.SettingsActivity">
<fragment
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:name="com.foo.app.SettingsFragment"
android:id="@+id/fragment_settings"/>
<fragment
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:name="com.foo.app.NotificationSettingsFragment"
android:id="@+id/fragment_notification_settings"/>
</LinearLayout>
问题是这两个片段只显示了它们的 PreferenceCategory 标题,而实际的片段 UI 高度为零且不可见。奇怪的是,可以单独滚动每个片段并查看缺少的片段 UI。就好像每个 Fragment 都在一个 ScrollView 内。
我期望两个片段的大小可以包装它们的内容,并且有一个垂直滑块来滚动包含两个片段的 LinearLayout。
如果相关,这两个片段扩展 android.preference.PreferenceFragment 并且不在布局文件中定义它们的布局。相反,他们按如下方式加载其 Preference UI:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.pref_notification);
}
TIA 为您提供帮助。